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

In This Topic
    Polyline Property (ElevationProfileResult)
    In This Topic
    Gets the elevation profile polyline, provided the Status is SurfaceZsResultStatus.Ok. The polyline is null if no elevation profile cane be determined.
    Syntax
    Public ReadOnly Property Polyline As Polyline
    public Polyline Polyline {get;}
    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);
    }
    Requirements

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

    ArcGIS Pro version: 3.4 or higher.
    See Also