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."; } }
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); }
public ItineraryItemViewModel(BingItineraryItem item) { this.item = item; }