public ShowMapPage(Departure departure)
        {
            InitializeComponent();

            useStopNotStation = false;

            findEarliestDeparture = stop =>
            {
                if (stop.ParentStation.ID == DataFeedClient.Basic.Stops.FindByIndex(departure.StopID).ParentStation.ID)
                {
                    return(departure.DepartureDateTime);
                }
                else
                {
                    return(departure.IntermediateStops.Find(s => DataFeedClient.Basic.Stops.FindByIndex(s.StopID).ParentStation.ID == stop.ParentStation.ID).Arrival);
                }
            };

            Title = Settings.Localization.Map;

            var stops = departure.GetStops();

            SetMapScope(stops, false, true);

            DrawMarkers(stops);

            DrawPolyline(stops, departure.LineColor);
        }
        public static string GetMapWithMarkersAndPolylines(Departure departure)
        {
            var stops = departure.GetStops();
            var map   = stops.CreateMap("map", stops.GetAverageLatitude(), stops.GetAverageLongitude(), 13);

            var initMap = new JavascriptFunction.Definition("initMap");

            initMap.AddInstruction(map.VariableAssignment);
            initMap.AddInstruction(stops.CreateMarkers(map).ToString);
            initMap.AddInstruction(stops.CreateSimplePolyline(map, 4.0, departure.LineColor).ToString);

            return(GetHtmlStringConstant(initMap.ToString(), initMap.FunctionName));
        }