New to Telerik UI for WinForms? Download free 30-day trial

List ElevationType

ElevationType.List ElevationRequest gets elevations for latitude and longitude coordinates. Elevations are returned for each set of coordinates.

Figure 1: List ElevationRequest

WinForms RadMap List ElevationRequest

List ElevationType request


public void SetupListElevationRequest()
{
    //add pins to the map 
    Telerik.WinControls.UI.Map.PointG point1 = new Telerik.WinControls.UI.Map.PointG(36.114647, -115.172813);
    Telerik.WinControls.UI.Map.PointG point2 = new Telerik.WinControls.UI.Map.PointG(34.05223, -118.24368);
    Telerik.WinControls.UI.Map.PointG point3 = new Telerik.WinControls.UI.Map.PointG(37.77493, -122.41942);
    MapPin pin1 = new MapPin(point1);
    MapPin pin2 = new MapPin(point2);
    MapPin pin3 = new MapPin(point3);

    MapLayer pinsLayer = new MapLayer("Pins");
    this.radMap1.Layers.Add(pinsLayer);

    MapLayer calloutsLayer = new MapLayer("Callouts");
    this.radMap1.Layers.Add(calloutsLayer);
    this.radMap1.Layers["Pins"].Add(pin1);
    this.radMap1.Layers["Pins"].Add(pin2);
    this.radMap1.Layers["Pins"].Add(pin3);

    ElevationRequest request = new ElevationRequest();
    request.ElevationType = ElevationType.List;
    request.Points = new List<Telerik.WinControls.UI.Map.PointG>()
    {
        point1,
        point2,
        point3
    };
    BingRestMapProvider bingProvider = this.radMap1.Providers[0] as BingRestMapProvider;
    bingProvider.CalculateElevationCompleted += BingProvider_CalculateElevationCompleted;
    bingProvider.CalculateElevationAsync(request);
}

private void BingProvider_CalculateElevationCompleted(object sender, ElevationCompletedEventArgs e)
{
    for (int i = 0; i < this.radMap1.Layers["Pins"].Overlays.Count; i++)
    {
        MapPin pin = this.radMap1.Layers["Pins"].Overlays[i] as MapPin;
        if (pin != null)
        {
            MapCallout callout = new MapCallout(pin);
            callout.MaxWidth = 50;
            callout.Text = e.Elevations[0].Elevations[i].ToString() + "m";
            this.radMap1.Layers["Callouts"].Add(callout);
        }
    }
}