ArcGIS Pro 3.7 API Reference Guide
ArcGIS.Desktop.Mapping Namespace / ElevationProfileResult Class
Members Example

In This Topic
    ElevationProfileResult Class
    In This Topic
    Defines the result of calling Map.GetElevationProfileFromSurface().
    Object Model
    ElevationProfileResult ClassPolyline Class
    Syntax
    Public Class ElevationProfileResult 
    public class ElevationProfileResult 
    Example
    Get Elevation profile from the default ground surface
    {
        // get the elevation profile for a polyline / set of polylines
        Polyline polyline = PolylineBuilderEx.CreatePolyline();
        MapPoint mapPoint = MapPointBuilderEx.CreateMapPoint(34, -118, SpatialReferences.WGS84);
        List<MapPoint> mapPoints = new List<MapPoint> { mapPoint };
        var result = await MapView.Active.Map.GetElevationProfileFromSurfaceAsync([polyline]);
        if (result.Status == SurfaceZsResultStatus.Ok)
        {
            var polylineZ = result.Polyline;
    
            // process the polylineZ
    
            // get the elevation profile for a set of points
            result = await MapView.Active.Map.GetElevationProfileFromSurfaceAsync(mapPoints);
            if (result.Status == SurfaceZsResultStatus.Ok)
            {
                polylineZ = result.Polyline;
                // process the polylineZ
            }
        }
    }
    Get Elevation profile from a specific surface
    {
        // find a specific elevation surface layer
        var eleLayer = MapView.Active.Map.GetElevationSurfaceLayers().FirstOrDefault(l => l.Name == "TIN");
        Polyline polyline = PolylineBuilderEx.CreatePolyline();
        MapPoint mapPoint = MapPointBuilderEx.CreateMapPoint(34, -118, SpatialReferences.WGS84);
        List<MapPoint> mapPoints = new List<MapPoint> { mapPoint };
        // get the elevation profile for a polyline / set of polylines
        // use the specific elevation surface layer
        var zResult = await MapView.Active.Map.GetElevationProfileFromSurfaceAsync([polyline], eleLayer);
        if (zResult.Status == SurfaceZsResultStatus.Ok)
        {
            var polylineZ = zResult.Polyline;
    
            // process the polylineZ
        }
    
        // get the elevation profile for a set of points
        // use the specific elevation surface layer
        zResult = await MapView.Active.Map.GetElevationProfileFromSurfaceAsync(mapPoints, eleLayer);
        if (zResult.Status == SurfaceZsResultStatus.Ok)
        {
            var polylineZ = zResult.Polyline;
    
            // process the polylineZ
        }
    }
    Interpolate a line between two points and calculate the elevation profile
    {
        int numPoints = 20;//Or any number of points you want to interpolate
                           // use a specific elevation surface
        var eleLayer = MapView.Active.Map.GetElevationSurfaceLayers().FirstOrDefault(l => l.Name == "TIN");
        // use the default ground elevation surface
        MapPoint startPt = MapPointBuilderEx.CreateMapPoint(-130, 20, SpatialReferences.WGS84);
    
        MapPoint endPt = MapPointBuilderEx.CreateMapPoint(-100, 50, SpatialReferences.WGS84);
        var result = await MapView.Active.Map.GetElevationProfileFromSurfaceAsync(startPt, endPt, numPoints);
        if (result.Status == SurfaceZsResultStatus.Ok)
        {
            var polylineZ = result.Polyline;
    
            // process the polylineZ
        }
        // use a specific elevation surface
        result = await MapView.Active.Map.GetElevationProfileFromSurfaceAsync(startPt, endPt, numPoints, eleLayer);
        if (result.Status == SurfaceZsResultStatus.Ok)
        {
            var polylineZ = result.Polyline;
    
            // process the polylineZ
        }
    }
    Show Elevation profile graph using an ElevationProfileResult
    {
        MapPoint startPt = MapPointBuilderEx.CreateMapPoint(-130, 20, SpatialReferences.WGS84);
        MapPoint endPt = MapPointBuilderEx.CreateMapPoint(-100, 50, SpatialReferences.WGS84);
        var elevProfileResult = await MapView.Active.Map.GetElevationProfileFromSurfaceAsync(startPt, endPt, 10);
        if (elevProfileResult.Status != SurfaceZsResultStatus.Ok)
            return;
    
        if (!MapView.Active.CanShowElevationProfileGraph())
            return;
    
        // show the elevation profile using the result
        MapView.Active.ShowElevationProfileGraph(elevProfileResult);
    }
    Inheritance Hierarchy

    System.Object
       ArcGIS.Desktop.Mapping.ElevationProfileResult

    Requirements

    Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)

    ArcGIS Pro version: 3.4 or higher.
    See Also