Esempio n. 1
0
        //private async Task<DateTime> addWalkTime(DateTime time, GeoCoordinate location)
        //{
        //    if (currentStop.StraightLineDistanceTo(location.Latitude, location.Longitude) > StopPage.MinShowDistance)
        //        time += (await StopTransfers.WalkDistance(currentStop.Coordinate, location)).EstimatedDuration;
        //    return time;
        //}

        private void setDistanceText(string head, GeoCoordinate loc, double distance)
        {
            if (CurrentStop.StraightLineDistanceTo(loc.Latitude, loc.Longitude) > StopViewModel.MinShowDistance)
            {
                //int walkMinutes = (int)Math.Ceiling(distance.TotalMinutes);
                //DistanceText.Text = String.Format("{0}: {1} m ({2})",
                //    head,
                //    Math.Round(currentStop.Distance(loc.Latitude, loc.Longitude)),
                //    StringFactory.XMinutes(walkMinutes)
                //);
                this.DistanceText = StringFactory.LocalizeDistanceWithUnit(distance) + " " +
                                    StringFactory.CardinalToString(CurrentStop.InverseDirectionTo(loc.Latitude, loc.Longitude));
                this.ShowDistance = true;
            }
            else
            {
                this.ShowDistance = false;
            }
            this.NotifyDistanceChanged();
        }
Esempio n. 2
0
 public override string ToString()
 {
     return(StringFactory.LocalizeDistanceWithUnit(Value));
 }
Esempio n. 3
0
        public async void ShowContent()
        {
            IsExpanded              = true;
            FrontPanel.Visibility   = Visibility.Collapsed;
            ContentPanel.Visibility = Visibility.Visible;

            if (unset)
            {
                if (!initialized)
                {
                    throw new InvalidOperationException("Uninitalized pushpin showed.");
                }
                unset = false;

                NameList.ItemsSource = stops.Select(s => s.Group).Distinct().Select(s => new HeaderModel {
                    Stop = s.Stops.First(), IsLink = !isCurrent
                }).ToList();
                var model = await ArrivalTrips.CalculateRoutes(stops, startTime, sourceLocation, sourceStop, MaximumDistance);

                if (model.Count > 0)
                {
                    double dist = model.First().Distance;
                    DetailsText.Text = "";
                    if (sourceStop != null && stops.Contains(sourceStop))
                    {
                        DetailsText.Text += AppResources.StopMapPosition + "\n";
                    }
                    else if (dist > 10.0 && dist < MaximumDistance)
                    {
                        int minutes = (int)Math.Round(model.First().WalkTime.TotalMinutes);
                        DetailsText.Text += StringFactory.Format(AppResources.StopMapDistance, minutes > 1, StringFactory.LocalizeDistanceWithUnit(dist), minutes);
                    }
                    if (model.First().IsFar)
                    {
                        IsDistanceIgnored = true;
                    }
                    RouteList.ItemsSource = model;
                    DetailsText.Text     += StringFactory.Format(AppResources.StopMapDepartures, false, startTime.ToString("t"));
                }
                else
                {
                    RouteList.Visibility = Visibility.Collapsed;
                    DetailsText.Text     = AppResources.RoutePanelOutOfService;
                }
            }
        }
Esempio n. 4
0
        public async Task SetContent(IEnumerable <Stop> stops, bool isCurrent, DateTime startTime, GeoCoordinate sourceLocation, Stop sourceStop)
        {
            NameList.ItemsSource = stops.Select(s => s.Group).Distinct().Select(s => new HeaderModel {
                Stop = s.Stops.First(), IsLink = !isCurrent
            }).ToList();
            var model = await ArrivalTrips.CalculateRoutes(stops, startTime, sourceLocation, sourceStop, MaximumDistance);

            var lines = new List <string>();

            if (model.Count > 0)
            {
                double dist = model.First().Distance;
                if (sourceStop != null && stops.Contains(sourceStop))
                {
                    lines.Add(App.Common.Services.Resources.LocalizedStringOf("StopMapPosition"));
                }
                else if (dist > 10.0 && dist < MaximumDistance)
                {
                    int minutes = (int)Math.Round(model.First().WalkTime.TotalMinutes);
                    lines.Add(StringFactory.Format(App.Common.Services.Resources.LocalizedStringOf("StopMapDistance"), minutes > 1, StringFactory.LocalizeDistanceWithUnit(dist), minutes));
                }
                if (model.First().IsFar)
                {
                    IsDistanceIgnored = true;
                }
                RouteList.ItemsSource = model;
                lines.Add(StringFactory.Format(App.Common.Services.Resources.LocalizedStringOf("StopMapDepartures"), false, startTime.ToString("t")));
            }
            else
            {
                RouteList.Visibility = Visibility.Collapsed;
                lines.Add(App.Common.Services.Resources.LocalizedStringOf("RoutePanelOutOfService"));
            }
            DetailsText.Text = String.Join("\n", lines);
        }