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 Version

GetElevationProfileFromSurfaceAsync(IEnumerable<MapPoint>,ElevationSurfaceLayer) Method
Gets an elevation profile for the specified points. All Z values of the calculated polyline are populated from the specified Elevation Surface Layer.
Syntax

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