ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Desktop.Mapping Namespace / Map Class / GetElevationProfileFromSurfaceAsync Method / GetElevationProfileFromSurfaceAsync(IEnumerable<MapPoint>,ElevationSurfaceLayer) Method
A set of points.
Identifies the surface to be used. If null is specified, then the default Ground Surface will be used.
Example

In This Topic
    GetElevationProfileFromSurfaceAsync(IEnumerable<MapPoint>,ElevationSurfaceLayer) Method
    In This Topic
    Gets an elevation profile for the specified points. All Z values of the calculated polyline are populated from the specified Elevation Surface Layer.
    Syntax
    Public Overloads Function GetElevationProfileFromSurfaceAsync( _
       ByVal points As IEnumerable(Of MapPoint), _
       ByVal surfaceLayer As ElevationSurfaceLayer _
    ) As Task(Of ElevationProfileResult)

    Parameters

    points
    A set of points.
    surfaceLayer
    Identifies the surface to be used. If null is specified, then the default Ground Surface will be used.

    Return Value

    An ElevationProfileResult. If successful, this contains the generated polyline.
    Exceptions
    ExceptionDescription
    polylines cannot be null.
    This Map does not have the specified surfaceLayer.
    This Map does not have a visible Ground Surface Layer.
    Remarks
    If the surface has no data at a particular input geometry point, then the corresponding output geometry point Z will be set to the value specified in SurfaceZsMissingHandler.DefaultOutputZ.
    Example
    Get Elevation profile from a specific surface
    // find the elevation profile for a polyline / set of polylines
    var eleLayer = MapView.Active.Map.GetElevationSurfaceLayers().FirstOrDefault(l => l.Name == "TIN");
    var zResult = await MapView.Active.Map.GetElevationProfileFromSurfaceAsync([lineGeom], eleLayer);
    if (zResult.Status == SurfaceZsResultStatus.Ok)
    {
      var polylineZ = zResult.Polyline;
    
      // process the polylineZ
    }
    
    // find the elevation profile for a set of points
    zResult = await MapView.Active.Map.GetElevationProfileFromSurfaceAsync(pts, eleLayer);
    if (zResult.Status == SurfaceZsResultStatus.Ok)
    {
      var polylineZ = zResult.Polyline;
    
      // process the polylineZ
    }
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3.4 or higher.
    See Also