ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Desktop.Mapping Namespace / TinLayer Class / InterpolateShape Method / InterpolateShape(Geometry,SurfaceInterpolationMethod) Method
The geometry to be interpolated. It must be a point, multipoint, polyline or polygon.
The method of interpolation. The default method of interpolation for TINs is SurfaceInterpolationMethod.Linear./
Example Version

InterpolateShape(Geometry,SurfaceInterpolationMethod) Method
Interpolates Z values for a geometric shape from the surface layer. This method must be called on the MCT. Use QueuedTask.Run.
Syntax

Parameters

geometry
The geometry to be interpolated. It must be a point, multipoint, polyline or polygon.
interpolationMethod
The method of interpolation. The default method of interpolation for TINs is SurfaceInterpolationMethod.Linear./

Return Value

A ArcGIS.Core.Geometry.Geometry with surface elevation z values.
Exceptions
ExceptionDescription
geometry cannot be null.
The set of parameters is invalid for this surface. See CanInterpolateShape.
An exception occurred within the InterpolateShape calculation.
This method or property must be called within the lambda passed to QueuedTask.Run.
Remarks
Portions of the input not falling within the interpolation zone of the surface will be clipped.

InterpolateShape will handle differences in spatial reference between the input shape and the surface. It will project (a copy of) the input geometry to match the surface for the sake of interpolation. It will then re-project the output geometry so it's the same as the input shape.

See also InterpolateShape(Geometry,SurfaceInterpolationMethod,Double,Double) if you wish to specify specific values for densification of the geometry before interpolation occurs depending upon your interpolation method.

Example
Interpolate Shape
var tinLayer = MapView.Active.Map.GetLayersAsFlattenedList().OfType<TinLayer>().FirstOrDefault();
await QueuedTask.Run(() =>
{
  Geometry output = null;
  // interpolate z values for a geometry
  if (tinLayer.CanInterpolateShape(polyline))
    output = tinLayer.InterpolateShape(polyline, SurfaceInterpolationMethod.NaturalNeighbor);

  if (output != null)
  {
    // process the output
  }


  // densify the shape before interpolating
  if (tinLayer.CanInterpolateShape(polygon))
    output = tinLayer.InterpolateShape(polygon, SurfaceInterpolationMethod.Linear, 0.01, 0);

  if (output != null)
  {
    // process the output
  }

});
Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3.4 or higher.
See Also