void CheckItinerary()
        {
            InformationLayer  routeLayer  = parentModel.Navigator.RouteLayer;
            GeoPoint          location    = routeLayer.MapUnitToGeoPoint(currentPoint);
            BingItineraryItem currentItem = itineraryItems[0];
            Size   geoSize    = new Size(Math.Abs(location.Latitude - currentItem.Location.Latitude), Math.Abs(location.Longitude - currentItem.Location.Longitude));
            Size   metricSize = routeLayer.GeoToKilometersSize(location, geoSize);
            double distance   = Math.Sqrt(metricSize.Width * metricSize.Width + metricSize.Height * metricSize.Height);

            if (distance < 0.005)
            {
                if (itineraryItems.Count > 1)
                {
                    itineraryItems.Remove(currentItem);
                }
                else
                {
                    distance = 0.0;
                }
            }
            if (distance > 0.0)
            {
                ActionText = CommonUtils.GetUserFriendlyEnumString(itineraryItems[0].Maneuver) + " after " + ((distance > 0.9) ? String.Format("{0:0} km", Math.Ceiling(distance)) : String.Format("{0:0} m", Math.Ceiling(distance * 10) * 100));
            }
            else
            {
                ActionText = "Finish! Click Stop and Clear to set a new route.";
            }
        }
Exemple #2
0
        public RoutePoint(BingItineraryItem item)
        {
            this.item           = item;
            ManeuverInstruction = removeTagRegex.Replace(item.ManeuverInstruction, string.Empty);
            double itemDistance = item.Distance;

            Distance = (itemDistance > 0.9) ?
                       String.Format("{0:0} mi", Math.Ceiling(itemDistance)) :
                       String.Format("{0:0} ft", Math.Ceiling(itemDistance * 52.8) * 100);
        }
Exemple #3
0
 public ItineraryItemViewModel(BingItineraryItem item)
 {
     this.item = item;
 }