windowsforms-devexpress-dot-xtramap-dot-elevationinformation.md
Gets or sets the location by the geographical point.
Namespace : DevExpress.XtraMap
Assembly : DevExpress.XtraMap.v25.2.dll
NuGet Package : DevExpress.Win.Map
[DefaultValue(null)]
public GeoPoint Location { get; set; }
<DefaultValue(Nothing)>
Public Property Location As GeoPoint
| Type | Default | Description |
|---|---|---|
| GeoPoint | null |
A GeoPoint value.
|
This example demonstrates how to receive elevation information from the Bing Maps service.
To do this, request elevation information using the BingElevationDataProvider.RequestPointsElevations method. Then, display the request result using the BingElevationDataProvider.ElevationsCalculated event handler.
using DevExpress.XtraMap;
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace BingElevationData {
public partial class Form1 : Form {
InformationLayer layer { get { return (InformationLayer)mapControl.Layers[1]; } }
VectorItemsLayer vectorLayer { get { return (VectorItemsLayer)mapControl.Layers[2]; } }
BingElevationDataProvider provider { get { return (BingElevationDataProvider)layer.DataProvider; } }
public Form1() {
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e) {
provider.ElevationsCalculated += OnElevationCalculated;
provider.GenerateLayerItems = false;
List<GeoPoint> locations = new List<GeoPoint> {
new GeoPoint(41.145556, -73.995),
new GeoPoint(36.131389, -95.937222),
new GeoPoint(36.175, -115.136389)
};
provider.RequestPointsElevations(locations);
}
void OnElevationCalculated(object sender, ElevationsCalculatedEventArgs e) {
MapItemStorage storage = new MapItemStorage();
foreach (ElevationInformation elevationInformation in e.Result.Locations) {
storage.Items.Add(new MapCallout() {
Text = string.Format("{0}\nElevation = {1} m", elevationInformation.Location, elevationInformation.Elevation),
Location = elevationInformation.Location
});
}
vectorLayer.Data = storage;
}
}
}
Imports DevExpress.XtraMap
Imports System
Imports System.Collections.Generic
Imports System.Windows.Forms
Namespace BingElevationData
Partial Public Class Form1
Inherits Form
Private ReadOnly Property layer() As InformationLayer
Get
Return CType(mapControl.Layers(1), InformationLayer)
End Get
End Property
Private ReadOnly Property vectorLayer() As VectorItemsLayer
Get
Return CType(mapControl.Layers(2), VectorItemsLayer)
End Get
End Property
Private ReadOnly Property provider() As BingElevationDataProvider
Get
Return CType(layer.DataProvider, BingElevationDataProvider)
End Get
End Property
Public Sub New()
InitializeComponent()
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
AddHandler provider.ElevationsCalculated, AddressOf OnElevationCalculated
provider.GenerateLayerItems = False
Dim locations As New List(Of GeoPoint)() From { _
New GeoPoint(41.145556, -73.995), _
New GeoPoint(36.131389, -95.937222), _
New GeoPoint(36.175, -115.136389) _
}
provider.RequestPointsElevations(locations)
End Sub
Private Sub OnElevationCalculated(ByVal sender As Object, ByVal e As ElevationsCalculatedEventArgs)
Dim storage As New MapItemStorage()
For Each elevationInformation As ElevationInformation In e.Result.Locations
storage.Items.Add(New MapCallout() With {.Text = String.Format("{0}" & ControlChars.Lf & "Elevation = {1} m", elevationInformation.Location, elevationInformation.Elevation), .Location = elevationInformation.Location})
Next elevationInformation
vectorLayer.Data = storage
End Sub
End Class
End Namespace
See Also