BingRouteIsochroneDataProvider.CalculateIsochroneByTime(RouteWaypoint, Int32) Method
Calculates an isochrone based on a specified travel time.
Namespace: DevExpress.XtraMap
Assembly: DevExpress.XtraMap.v24.1.dll
NuGet Package: DevExpress.Win.Map
Declaration
Parameters
Name | Type | Description |
---|---|---|
waypoint | RouteWaypoint | Specifies an origin point’s coordinates. |
maxTime | Int32 | Specifies the maximum travel time in which the isochrone polygon is calculated. The default measurement unit is second. Use the BingRouteIsochroneOptions.TimeUnit property to define the measurement unit. |
Remarks
You can specify the following parameters to calculate a time-based isochrone:
Example
The following example plots a polygon that shows the area that is accessible from the specified point. The size of the area depends on a given travel time (the time is equal to 10 minutes 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 provider’s BingKey property.
Call the CalculateIsochroneByTime method to calculate an isochrone.
using DevExpress.XtraMap;
using System;
using System.Windows.Forms;
namespace IsochroneSample {
public partial class Form1 : Form {
private void Form1_Load(object sender, EventArgs e) {
ImageLayer imageLayer = new ImageLayer();
mapControl1.Layers.Add(imageLayer);
BingMapDataProvider provider = new BingMapDataProvider();
provider.BingKey = "Insert your Bing key.";
provider.Kind = BingMapKind.RoadLight;
imageLayer.DataProvider = provider;
InformationLayer infoLayer = new InformationLayer();
mapControl1.Layers.Add(infoLayer);
BingRouteIsochroneDataProvider isochroneDataProvider = new BingRouteIsochroneDataProvider();
isochroneDataProvider.BingKey = "Insert your Bing key.";
GeoPoint origin = new GeoPoint(36.1532403246368, -86.7701703811725);
mapControl1.CenterPoint = origin;
isochroneDataProvider.IsochroneOptions.TimeUnit = TimeMeasureUnit.Minute;
isochroneDataProvider.IsochroneOptions.Mode = BingTravelMode.Driving;
isochroneDataProvider.CalculateIsochroneByTime(new RouteWaypoint("", origin), 10);
infoLayer.DataProvider = isochroneDataProvider;
infoLayer.DataRequestCompleted += OnDataRequestCompleted;
}
private void OnDataRequestCompleted(object sender, RequestCompletedEventArgs e) {
// Call the ZoomToFitLayerItems method to zoom the map so that it displays the created isochrone.
mapControl1.ZoomToFitLayerItems();
}
}
}