Skip to main content

BingRouteDataProvider Class

The class that is used to send requests to the Bing Maps Route service.

Namespace: DevExpress.Xpf.Map

Assembly: DevExpress.Xpf.Map.v22.1.dll

Declaration

public class BingRouteDataProvider :
    BingMapDataProviderBase

Remarks

The Bing Route Data provider is represented by the BingRouteDataProvider object that can be accessed via the InformationLayer.DataProvider property.

To get access to the Bing Route service, you should specify the bing key using the BingMapDataProviderBase.BingKey property.

To learn how this can be done, see the How to: Get a Bing Maps Key topic.

To get access to the route options of the Bing Route Data provider, use the BingRouteDataProvider.RouteOptions property.

Example

This example demonstrates how to use the Microsoft Bing Route web service to calculate a route between multiple waypoints and how to customize the appearance of the resulting route path.

Calculated route

To accomplish this, do the following:

View Example

<dxm:InformationLayer EnableHighlighting="False">
    <dxm:InformationLayer.DataProvider>
        <dxm:BingRouteDataProvider x:Name="routeProvider" 
                                   BingKey="{Binding Source={StaticResource YourBingKey}}"
                                   LayerItemsGenerating="routeProvider_LayerItemsGenerating"/>
    </dxm:InformationLayer.DataProvider>
</dxm:InformationLayer>
public partial class MainWindow : Window {

    public MainWindow() {
        InitializeComponent();

        // Create three waypoints and add them to a route waypoints list. 
        List<RouteWaypoint> waypoints = new List<RouteWaypoint>();
        waypoints.Add(new RouteWaypoint("New York", new GeoPoint(41.145556, -73.995)));
        waypoints.Add(new RouteWaypoint("Oklahoma", new GeoPoint(36.131389, -95.937222)));
        waypoints.Add(new RouteWaypoint("Las Vegas", new GeoPoint(36.175, -115.136389)));

        routeProvider.CalculateRoute(waypoints);
    }

    private void routeProvider_LayerItemsGenerating(object sender, LayerItemsGeneratingEventArgs args) {
        char letter = 'A';
        foreach (MapItem item in args.Items) {
            MapPushpin pushpin = item as MapPushpin;
            if (pushpin != null)
                pushpin.Text = letter++.ToString();
            MapPolyline line = item as MapPolyline;
            if (line != null) {
                line.Fill = Brushes.Red;
                line.Stroke = Brushes.Red;
            }
        }

        map.ZoomToFit(args.Items);
    }
}

Implements

See Also