示例#1
0
        private static void OnRouteResultChanged(Map map,
                                                 BingRouteService.RouteResult oldValue,
                                                 BingRouteService.RouteResult newValue)
        {
            MapPolyline routeLine = new MapPolyline();

            routeLine.Locations       = new LocationCollection();
            routeLine.Opacity         = 0.80;
            routeLine.Stroke          = new SolidColorBrush(Colors.Magenta);
            routeLine.StrokeThickness = 5.0;

            foreach (BingRouteService.Location l in newValue.RoutePath.Points)
            {
                routeLine.Locations.Add(new Location(l.Latitude, l.Longitude));
            }

            var routeLineLayer = GetRouteLineLayer(map);

            if (routeLineLayer == null)
            {
                routeLineLayer = new MapLayer();
                SetRouteLineLayer(map, routeLineLayer);
            }

            routeLineLayer.Children.Clear();
            routeLineLayer.Children.Add(routeLine);

            LocationRect rect = new LocationRect(routeLine.Locations[0],
                                                 routeLine.Locations[routeLine.Locations.Count - 1]);

            map.SetView(rect);
        }
示例#2
0
 public static void SetRouteResult(DependencyObject target, BingRouteService.RouteResult value)
 {
     target.SetValue(RouteResultProperty, value);
 }