BingRouteIsochroneOptions.DistanceUnit Property
Gets or sets the distance measurement unit for which an isochrone is calculated.
Namespace: DevExpress.Xpf.Map
Assembly: DevExpress.Xpf.Map.v24.1.dll
NuGet Package: DevExpress.Wpf.Map
Declaration
Property Value
Type | Description |
---|---|
DistanceMeasureUnit | The distance measurement unit. The default value is Kilometer. |
Available values:
Name | Description |
---|---|
Kilometer | All distances are measured in kilometers. |
Mile | All distances are measured in miles. |
Property Paths
You can access this nested property as listed below:
Object Type | Path to DistanceUnit |
---|---|
BingRouteIsochroneDataProvider |
|
Remarks
Specify the DistanceUnit property to set the measurement unit for the distance that you pass to the CalculateIsochroneByDistance method parameters.
Example
The following code plots a polygon that shows the area that is accessible from the specified point. The size of the area depends on a given travel distance (the distance is equal to 10 kilometers in the example below):
Create an InformationLayer object and add it to the MapControl.Layers collection.
Initialize the layer’s InformationLayer.DataProvider property with a BingRouteIsochroneDataProvider object.
Specify the adapter’s BingKey property.
Define the Mode and
DistanceUnit
parameters.Call the provider’s CalculateIsochroneByDistance method to calculate an isochrone.
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:IsochroneMap"
xmlns:dxm="http://schemas.devexpress.com/winfx/2008/xaml/map"
x:Class="IsochroneMap.MainWindow"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800" Loaded="Window_Loaded">
<Grid>
<dxm:MapControl x:Name="mapControl">
<dxm:ImageLayer>
<dxm:BingMapDataProvider BingKey="Insert your Bing key."
Kind="RoadLight" />
</dxm:ImageLayer>
<dxm:InformationLayer x:Name="infoLayer">
<dxm:BingRouteIsochroneDataProvider x:Name="isochroneProvider"
BingKey="Insert your Bing key."
GenerateLayerItems="False"
IsochroneCalculated="OnIsochroneCalculated">
<dxm:BingRouteIsochroneDataProvider.IsochroneOptions>
<dxm:BingRouteIsochroneOptions Mode="Driving"
DistanceUnit="Kilometer"/>
</dxm:BingRouteIsochroneDataProvider.IsochroneOptions>
</dxm:BingRouteIsochroneDataProvider>
</dxm:InformationLayer>
</dxm:MapControl>
</Grid>
</Window>
using DevExpress.Xpf.Map;
using System.Windows;
using System.Windows.Media;
namespace IsochroneMap {
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e) {
GeoPoint origin = new GeoPoint(42.3589935302734, -71.0586318969727);
isochroneProvider.CalculateIsochroneByDistance(new RouteWaypoint("Origin", origin), 10);
}
private void OnIsochroneCalculated(object sender, BingRouteIsochroneCalculatedEventArgs e) {
foreach (var polygon in e.CalculationResult.IsochroneResult.Polygons) {
MapPolyline item = new MapPolyline();
foreach (var points in polygon.Coordinates)
item.Points.Add(points);
item.StrokeStyle = new StrokeStyle { Thickness = 4 };
item.Stroke = Brushes.Red;
MapPushpin pushpin = new MapPushpin { Location = e.CalculationResult.IsochroneResult.Origin, Brush = Brushes.Red };
VectorLayer vectorLayer = new VectorLayer();
mapControl.Layers.Add(vectorLayer);
MapItemStorage storage = new MapItemStorage();
vectorLayer.Data = storage;
storage.Items.Add(item);
storage.Items.Add(pushpin);
}
mapControl.ZoomToFitLayerItems();
}
}
}