ISurface Interface

Provides access to members that control surfaces.

Members

Name Description
Method AsPolygons Converts the surface to a polygon feature class representing slope or aspect.
Read-only property CanDoCurvature Indicates if earth curvature can be applied.
Method Contour Output contours based on the specified root value and interval.
Method ContourList Output a list of contours corresponding to the specified eleveation values.
Read-only property Domain The interpolation domain of the surface.
Method FindNormal Restricted.
Method GetAspectDegrees Returns the aspect at the specified location in degrees.
Method GetAspectRadians Returns the aspect at the specified location in radians.
Method GetContour Returns a countour passing through the queried point.
Method GetElevation Returns the z value of the specified location.
Method GetLineOfSight Computes the visibility of a line-of-sight from the observer to the target.
Method GetNormal Returns the normal vector to the specified location.
Method GetProfile Returns a polyline with z values interpolated from the surface.
Method GetProjectedArea Returns the projected area of the surface above or below an input z value.
Method GetSlopeDegrees Returns the slope at the specified location in degrees.
Method GetSlopePercent Returns the slope at the specified location in percent.
Method GetSlopeRadians Returns the slope at the specified location in radians.
Method GetSteepestPath Returns the steepest path downhill from the specified point.
Method GetSurfaceArea Returns the area measured on its surface above or below an input z value.
Method GetVolume Returns the volume above or below an input z value.
Method InterpolateShape Interpolates z values for a defined geometric shape.
Method InterpolateShapeVertices Interpolates z values for a defined geometric shape at its vertices only.
Method IsVoidZ Returns TRUE if the passed value is equal to the surface's void value.
Method Locate Returns the intersection of the query ray and the surface.
Method LocateAll Returns the distances of intersections of the query ray and the surface.
Method QueryNormal Returns the vector normal to the specified triangle.
Method QueryPixelBlock Derives slope, aspect, hillshade, or elevation from the input surface and writes the result to the provided PixelBlock.
Method QuerySurfaceLength Returns the length of an input polyline measured on the surface.
Read-only property Z The surface Z = f(x,y).
Read/write property ZFactor Multiplication factor applied to all z values to provide unit-congruency between coordinate components.

ISurface.AsPolygons Method

Converts the surface to a polygon feature class representing slope or aspect.

Public Sub AsPolygons ( _
    ByVal pFeatureClass As IFeatureClass, _
    ByVal Type As esriSurfaceConversionType, _
    ByVal pClassBreaks As IDoubleArray, _
    ByVal pClassCodes As ILongArray, _
    [ByRef FieldName As Object] _
)
public void AsPolygons (
    IFeatureClass pFeatureClass,
    esriSurfaceConversionType Type,
    IDoubleArray pClassBreaks,
    ILongArray pClassCodes,
    ref object FieldName
);

Description

Converts the surface into a 2D polygon based feature class representing areas classified by slope or aspect.

Polygons will be written to the specified 2D polygon feature class. It should be an empty feature class and is typically created immediately before calling AsPolygons.

Do not have WorkspaceEdit turned on as this member adds fields to the feature class. The adding of fields is a schema editing operation not supported by WorkspaceEdit.

The esriSurfaceConversionType enumeration specifies whether the surface is classified on slope or aspect.

The pClassBreaks parameter is an array of doubles that defines the classification. Let's say there were 4 values placed in it: 1, 5, 10, and 15. The classification would result in 5 classes defined as follows:

 1:  <= 1
 5:  >  1 and <= 5
10:  >  5 and <= 10
15:  > 10 and <= 15
     > 15

The pClassCodes parameter is an array of long integers used to specify a class code for each class. You need to specify one more code than the number of class breaks to capture the last implied class (based on example the '>15' class). This code is written to the output feature class attribute table. The ClassCodes array can be 'Nothing' in which case the codes are automatically assigned 1..n.

When the esriSurfaceConversionType is set to esriDegreeAspect, the output code will automatically be set to -1 for polygons with undefined aspect (flat areas). This code can be overridden by providing it as an additional value at the end of the pClassCodes array. The method will know to use it because the code array will be one larger than necessary to capture the classification.

The optional FieldName argument is used to specify a name for the class code field. Defaults are provided if not specified. When esriSurfaceConversionType is esriDegreeAspect the default field name is 'AspectCode'. For both slope options it will be 'SlopeCode'. The field name is not to exceed 10 characters if writing to a shapefile as this is a dBase file limit.

ISurface.CanDoCurvature Property

Indicates if earth curvature can be applied.

Public ReadOnly Property CanDoCurvature As Boolean
public bool CanDoCurvature {get;}

ISurface.Contour Method

Output contours based on the specified root value and interval.

Public Sub Contour ( _
    ByVal referenceContourHeight As Double, _
    ByVal interval As Double, _
    ByVal pFeatureClass As IFeatureClass, _
    ByVal FieldName As String, _
    ByVal digitsAfterDecimalPoint As Integer _
)
public void Contour (
    double referenceContourHeight,
    double interval,
    IFeatureClass pFeatureClass,
    string FieldName,
    int digitsAfterDecimalPoint
);

Description

Creates contours, based on a specified interval, sending the ouput to a polyline based feature class.

The rootHeight is the height from which potential contours are generated, both above and below, at the specified interval. It does not mean minimum contour. Rather it permits you to have contours that aren't based on 0.0. For example, if you want a 5 unit contour interval, but need them at heights of -8, -3, 2, 7, and 12 you'd provide a rootHeight of -3 or 2, or even -13. Note the root height need not be a height within the surface z range. You can use any value but only those contours that fall within the surface's z range will be created. The default rootHeight is 0.0.

The interval defines at what frequency, in height, the contours will be generated. Smaller intervals produce more contours.

Contours will be written to the specified 2D polyline feature class. It should be an empty feature class and is typically created immediately before calling Contour.

Do not have WorkspaceEdit turned on as this member needs to add a field to the feature class, a scheme editing operation not supported by WorkspaceEdit.

fieldHeight is used to name the field added to the feature class to store each contour's height.

digitsAfterDecimalPoint controls the precision of the output height values. Use a value of 0 if you want heights recorded as integers, as is likely when both the rootHeight and interval values are integers.

ISurface.ContourList Method

Output a list of contours corresponding to the specified eleveation values.

Public Sub ContourList ( _
    ByVal pBreaks As IDoubleArray, _
    ByVal pFeatureClass As IFeatureClass, _
    ByVal FieldName As String, _
    ByVal digitsAfterDecimalPoint As Integer _
)
public void ContourList (
    IDoubleArray pBreaks,
    IFeatureClass pFeatureClass,
    string FieldName,
    int digitsAfterDecimalPoint
);

Description

Creates contours, based on a list of heights, sending the ouput to a polyline based feature class.

The pBreaks height list contains the elevation values for which contours will be derived.

Contours will be written to the specified 2D polyline feature class. It should be an empty feature class and is typically created immediately before calling Contour.

Do not have WorkspaceEdit turned on as this member needs to add a field to the feature class, a scheme editing operation not supported by WorkspaceEdit.

fieldName is used to name the field added to the feature class to store each contour's height.

digitsAfterDecimalPoint controls the precision of the output height values. Use a value of 0 if you want heights recorded as integers, as is likely when both the rootHeight and interval values are integers.

ISurface.FindNormal Method

Restricted.

Public Function FindNormal ( _
    ByVal X As Double, _
    ByVal Y As Double _
) As WKSPointZ
public WKSPointZ FindNormal (
    double X,
    double Y
);

ISurface.GetAspectDegrees Method

Returns the aspect at the specified location in degrees.

Public Function GetAspectDegrees ( _
    ByVal pPoint As IPoint _
) As Double
public double GetAspectDegrees (
    IPoint pPoint
);

Description

Returns the aspect of the surface, in degrees, for the specified location. Aspect is defined as the direction of steepest slope. The possible range of values falls between 0.0 and 360. 0.0 represents a north facing slope with increasing values changing aspect in a clockwise direction. For example, 90 degrees is due east, 180 degrees due south, and 270 degrees due west.

For some operations it may be desirable to work with aspect in radians rather than degrees. Use AspectRadians for this.

ISurface.GetAspectRadians Method

Returns the aspect at the specified location in radians.

Public Function GetAspectRadians ( _
    ByVal pPoint As IPoint _
) As Double
public double GetAspectRadians (
    IPoint pPoint
);

Description

Returns the aspect of the surface, in radians, for the specified location. Aspect is defined as the direction of steepest slope. The possible range of values falls between 0.0 and 6.283185. 0.0 represents a north facing slope with increasing values changing aspect in a clockwise direction. For example, 1.570796 radians is due east, 3.141593 radians due south, and 4.712389 radians due west.

For some operations it may be desirable to work with aspect in degrees rather than radians. Use AspectDegrees for this.

ISurface.GetContour Method

Returns a countour passing through the queried point.

Public Sub GetContour ( _
    ByVal pPoint As IPoint, _
    ByRef ppContour As IPolyline, _
    ByRef pElevation As Double _
)
public void GetContour (
    IPoint pPoint,
    ref IPolyline ppContour,
    ref double pElevation
);

Description

Returns the contour and height corresponding to a specified query point.

If the query point falls outside the interpolation zone, or on an area of zero slope, a nil polyline (nothing) is returned along with a void value for the height. You can check for a void height using ISurface.IsVoidZ.

The IPolyline pointer that is passed need not be referencing an instantiated object. GetContour will instantiate the object itself.

The returned contour elevation will be NaN when the returned contour is empty.

ISurface.GetElevation Method

Returns the z value of the specified location.

Public Function GetElevation ( _
    ByVal pPoint As IPoint _
) As Double
public double GetElevation (
    IPoint pPoint
);

Description

Returns the height for the specified location.

Bilinear interpolation is used on a raster surface. Linear interpolation is used on a TIN surface

A void value is returned if the query point does not fall within the interpolation zone of the surface. You can check for this case using ISurface.IsVoidZ on the returned value.

ISurface.GetLineOfSight Method

Computes the visibility of a line-of-sight from the observer to the target.

Public Sub GetLineOfSight ( _
    ByVal pObserver As IPoint, _
    ByVal pTarget As IPoint, _
    ByRef ppObstruction As IPoint, _
    ByRef ppVisibleLines As IPolyline, _
    ByRef ppInvisibleLines As IPolyline, _
    ByRef pbIsVisible As Boolean, _
    ByVal bApplyCurvature As Boolean, _
    ByVal bApplyRefraction As Boolean, _
    [ByRef pRefractionFactor As Object] _
)
public void GetLineOfSight (
    IPoint pObserver,
    IPoint pTarget,
    ref IPoint ppObstruction,
    ref IPolyline ppVisibleLines,
    ref IPolyline ppInvisibleLines,
    ref bool pbIsVisible,
    ref bool bApplyCurvature,
    ref bool bApplyRefraction,
    ref object pRefractionFactor
);

Description

Returns information about the line of sight between two points, an observer and target. Information returned includes whether the target is visible, the location of the first obstruction point if it isn't, and both the visible and invisible portions of the sight line along the surface.

Both the observer and target points need to be 3D. Any vertical offsets that need to be applied should already be accounted for in their Z values.

The obstruction point is set, as a 3D point, if the target is not visible from the observer. In this case the first intersection point, from the observer toward the target, between the surface and line of sight is used. The variable for the obstruction point need not reference an instantiated object. GetLineOfSight will automatically create the point. If the target is visible, there is no obstruction point and the returned object will be a Null pointer ('Nothing' in VB).

The visible and invisible polylines represent that which is seen from the observation point and that which is not. The variables used for these features need not reference instantiated objects. The function will create them. The line of sight may be entirely visible, entirely invisible, or a combination. These polylines will have Z values interpolated from the surface. If there is no output for one or the other of these polylines the corresponding pointer will be Null ('Nothing' in VB).

Set bApplyCurvature to True to have earth curvature taken into consideration. The default is False. It can be set to True if the surface has a defined projected coordinate system that includes defined ZUnits.

Set bApplyRefraction to True to have refraction of visible light taken into consideration. The default is False. It can be set to True if the surface has a defined projected coordinate system that includes defined ZUnits.

The default refraction factor is 0.13.

Notes:

This member should not be used in .NET. As a substitute, .NET developers must use IGeoDatabaseBridge2.GetLineOfSight.

ISurface.GetNormal Method

Returns the normal vector to the specified location.

Public Function GetNormal ( _
    ByVal pLocation As IPoint _
) As WKSPointZ
public WKSPointZ GetNormal (
    IPoint pLocation
);

Description

Returns the normal vector for the location specified by the input point.

The returned vector is orthogonal to the surface (the plane defined by the triangle) and has a magnitude, or length, of 1.0.

If the surface is a TIN, the resulting vector is calculated from the triangle containing the query point. If the query point falls on a triangle edge, one of the two neighboring triangles is picked randomly by the software. If the query point falls on a TIN node the triangle used is picked randomnly from those incident to the node.

If the surface is a raster, the resulting vector is calculated from the neighborhood of mesh points surrounding the query point.

ISurface.GetProfile Method

Returns a polyline with z values interpolated from the surface.

Public Sub GetProfile ( _
    ByVal pShape As IGeometry, _
    ByRef ppProfile As IGeometry, _
    [ByRef pStepSize As Object] _
)
public void GetProfile (
    IGeometry pShape,
    ref IGeometry ppProfile,
    ref object pStepSize
);

Description

Takes an input polyline or polygon, interpolates heights for it from the surface, and outputs the result as 3D geometry.

The input geometry should be polyline or polygon based. Portions of the input not falling within the interpolation zone of the surface will be clipped. A Null pointer ('Nothing' in Visual Basic) is returned when the input falls entirely off the surface.

If specified, the input geometry will be densified by the stepSize. This takes place before interpolating heights from the surface. The densification ensures no two vertices are spaced more than stepSize apart.

Notes:

  • On rasters, bilinear interpolation is used.
  • If the surface is a raster stepSize should be considered. Generally, the smaller the interval the more detail that gets captured (unless smaller than 1/2 cellsize), but at an increased cost in processing time and size of resulting geometry. The default stepSize for raster based surface is set equal to the cellsize.
  • On TINs the method of interpolation is controlled by ITinSurface3.InterpolationMethod.
  • On TINs, if the interpolation meethod is linear,ITinSurface3.ProfileWeedTolerance may be useful in preventing oversampled output.
  • On TINs, if the interpolation method is linear, the stepSize argument isn't very important since the default sampling scheme of using input vertices and triangle edge intersections is sufficient to capture all surface information. With linear interpolation that occurs when stepSize less or equal 0 or is set to null. The use of stepSize is more relevant when the interpolation method is something other than linear.
  • On TINs, if the interpolation method is natural neighbors, a stepSize less or equal 0 outputs input vertices and hard edge crossings only. If stepSize is null the output includes the input vertices and all triangle edge intersections.

ISurface.GetProjectedArea Method

Returns the projected area of the surface above or below an input z value.

Public Function GetProjectedArea ( _
    ByVal referenceHeight As Double, _
    ByVal Type As esriPlaneReferenceType _
) As Double
public double GetProjectedArea (
    double referenceHeight,
    esriPlaneReferenceType Type
);

Description

Returns the 2D projected/planar area of the surface relative to a specified reference plane.

The plane used in the calculation is horizontal and is therefore defined simply by height. You indicate the height and whether the area is to be calculated above or below it.

Note, the area is not the 3D volume between the plane and the surface. Rather, think of the intersection between the plane and the surface. If you outline the intersection you end up with one or more polygons. If you want the projected area above the plane, it's the summed area of these polygons. If you want the area below the plane the polygons represent holes inside an outer polygon, the interpolation zone. The area below the plane is that of the interpolation zone minus the holes.

ISurface.GetSlopeDegrees Method

Returns the slope at the specified location in degrees.

Public Function GetSlopeDegrees ( _
    ByVal pPoint As IPoint _
) As Double
public double GetSlopeDegrees (
    IPoint pPoint
);

ISurface.GetSlopePercent Method

Returns the slope at the specified location in percent.

Public Function GetSlopePercent ( _
    ByVal pPoint As IPoint _
) As Double
public double GetSlopePercent (
    IPoint pPoint
);

ISurface.GetSlopeRadians Method

Returns the slope at the specified location in radians.

Public Function GetSlopeRadians ( _
    ByVal pPoint As IPoint _
) As Double
public double GetSlopeRadians (
    IPoint pPoint
);

ISurface.GetSteepestPath Method

Returns the steepest path downhill from the specified point.

Public Function GetSteepestPath ( _
    ByVal pPoint As IPoint _
) As IPolyline
public IPolyline GetSteepestPath (
    IPoint pPoint
);

Description

Returns the steepest downhill path, the direction of steepest slope, from the specified query point. It will start at the query point and end in a pit or the edge of the surface. The returned polyline will be 3D.

The resulting polyline pointer will be set to Nil (nothing) if the query point falls outside the surface or on a flat area.

ISurface.GetSurfaceArea Method

Returns the area measured on its surface above or below an input z value.

Public Function GetSurfaceArea ( _
    ByVal referenceHeight As Double, _
    ByVal Type As esriPlaneReferenceType _
) As Double
public double GetSurfaceArea (
    double referenceHeight,
    esriPlaneReferenceType Type
);

Description

Returns the 3D area of the surface relative to a specified reference plane. The area is measured along the slope of a surface, taking height into consideration. The surface area will always be greater than the 2D planimetric extent of the model (unless the surface is flat).

The plane used in the calculation is horizontal and is therefore defined simply by height. You indicate the height and whether the area is to be calculated above or below it.

ISurface.GetVolume Method

Returns the volume above or below an input z value.

Public Function GetVolume ( _
    ByVal reference As Double, _
    ByVal Type As esriPlaneReferenceType _
) As Double
public double GetVolume (
    double reference,
    esriPlaneReferenceType Type
);

Description

Calculates the cubic space between the TIN surface and a horizontal plane located at the specified elevation.

If you choose to calculate volume above the plane, the area of consideration is that which is above the plane and the underside of the surface. If you choose below the plane the area of consideration is below the plane and the topside of the surface.

ISurface.InterpolateShape Method

Interpolates z values for a defined geometric shape.

Public Sub InterpolateShape ( _
    ByVal pShape As IGeometry, _
    ByRef ppOutShape As IGeometry, _
    [ByRef pStepSize As Object] _
)
public void InterpolateShape (
    IGeometry pShape,
    ref IGeometry ppOutShape,
    ref object pStepSize
);

Description

The Shape is an input 2D geometry. The method interpolates heights for it from the surface, and outputs the result as 3D geometry into OutShape.

The input geometry can be a point, polyline or polygon. Portions of the input not falling within the interpolation zone of the surface will be clipped. A NULL pointer ('Nothing' in VisualBasic) is returned when the input falls entirely off the surface.

If specified, input polylines and polygons will be densified by the stepSize. This takes place before interpolating heights from the surface. The densification ensures no two vertices are spaced more than stepSize apart.

The stepSize argument isn't very important when the surface is a TIN as the default sampling scheme of using input vertices and triangle edge intersections is sufficient to capture all surface information. If the surface is a raster it becomes more important. Generally, the smaller the interval the greater the detail (unless smaller than 1/2 cellsize), but at an increased cost in processing time and size of resulting geometry. The default stepSize for raster based surface is set equal to the cellsize.

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.

Notes:

  • On rasters, bilinear interpolation is used.
  • If the surface is a raster stepSize should be considered. Generally, the smaller the interval the more detail that gets captured (unless smaller than 1/2 cellsize), but at an increased cost in processing time and size of resulting geometry. The default stepSize for raster based surface is set equal to the cellsize.
  • On TINs the method of interpolation is controlled by ITinSurface3.InterpolationMethod.
  • On TINs, if the interpolation meethod is linear,ITinSurface3.ProfileWeedTolerance may be useful in preventing oversampled output.
  • On TINs, if the interpolation method is linear, the stepSize argument isn't very important since the default sampling scheme of using input vertices and triangle edge intersections is sufficient to capture all surface information. With linear interpolation that occurs when stepSize less or equal0 or is set to null. The use of stepSize is more relevant when the interpolation method is something other than linear.
  • On TINs, if the interpolation method is natural neighbors, a stepSize less or equal 0 outputs input vertices and hard edge crossings only. If stepSize is null the output includes the input vertices and all triangle edge intersections.

ISurface.InterpolateShapeVertices Method

Interpolates z values for a defined geometric shape at its vertices only.

Public Sub InterpolateShapeVertices ( _
    ByVal pShape As IGeometry, _
    ByRef ppOutShape As IGeometry _
)
public void InterpolateShapeVertices (
    IGeometry pShape,
    ref IGeometry ppOutShape
);

Description

Takes an input polyline or polygon, interpolates heights for its vertices from the surface, and outputs the result as 3D geometry. A NULL pointer ('Nothing' in VB) is returned if any portion of the input feature falls outside the surface.

InterpolateShapeVertices 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.

Notes:

ISurface.IsVoidZ Method

Returns TRUE if the passed value is equal to the surface's void value.

Public Function IsVoidZ ( _
    ByVal Value As Double _
) As Boolean
public bool IsVoidZ (
    double Value
);

Description

Returns TRUE or FALSE depending on whether the specified Z is considered NODATA. Mathmatical operations cannot be performed on NODATA.

Some functions, such as ISurface.GetElevation, return a floating point number representing some characteristic of the surface for a given location. If the location does not fall within the interpolation zone some value representing NODATA must be returned. IsVoidZ can be used to evaluate if the result is NODATA.

ISurface.Locate Method

Returns the intersection of the query ray and the surface.

Public Function Locate ( _
    ByVal pRay As IRay, _
    ByVal hint As Integer _
) As IPoint
public IPoint Locate (
    IRay pRay,
    int hint
);

ISurface.LocateAll Method

Returns the distances of intersections of the query ray and the surface.

Public Function LocateAll ( _
    ByVal pRay As IRay, _
    ByVal hint As Integer _
) As IDoubleArray
public IDoubleArray LocateAll (
    IRay pRay,
    int hint
);

ISurface.QueryNormal Method

Returns the vector normal to the specified triangle.

Public Sub QueryNormal ( _
    ByVal pLocation As IPoint, _
    ByVal pNormal As IVector3D _
)
public void QueryNormal (
    IPoint pLocation,
    IVector3D pNormal
);

ISurface.QueryPixelBlock Method

Derives slope, aspect, hillshade, or elevation from the input surface and writes the result to the provided PixelBlock.

Public Sub QueryPixelBlock ( _
    ByVal xOrigin As Double, _
    ByVal yOrigin As Double, _
    ByVal xPixelSize As Double, _
    ByVal yPixelSize As Double, _
    ByVal Type As esriRasterizationType, _
    ByVal valueForNoData As Object, _
    ByVal block As Object _
)
public void QueryPixelBlock (
    double xOrigin,
    double yOrigin,
    double xPixelSize,
    double yPixelSize,
    esriRasterizationType Type,
    object valueForNoData,
    object block
);

Description

xOrigin and yOrigin represent the map coordinates of the upper left cell center of the output pixel block.

xPixelSize and yPixelSize are the horizontal and vertical dimensions of the cells in the output pixel block.

type is an esriRasterizationType enumeration that indicates what type of surface information is written; elevation or a derivative.

valueForNodata is the value written into the pixel block for areas of NoData. It's a variant that must be set to the the same numeric type as the target raster (see rstPixelType). It should be the same value and variant type used as when constructing/defining the output raster via IRasterProps.NoDataValue.

block is a pointer to pixel data used for writing output values. It should be retrieved from a pixel block from the output raster via IPixelBlock3.PixelDataByRef.

Notes:

This member should not be used in .NET. As a substitute, .NET developers must use IGeoDatabaseBridge2.QueryPixelBlock.

ISurface.QuerySurfaceLength Method

Returns the length of an input polyline measured on the surface.

Public Sub QuerySurfaceLength ( _
    ByVal pShape As IGeometry, _
    ByRef pLength As Double, _
    [ByRef pStepSize As Object] _
)
public void QuerySurfaceLength (
    IGeometry pShape,
    ref double pLength,
    ref object pStepSize
);

Description

Returns the 3D length of the polyline by interpolating heights from the surface and calculating the sum of 3D distances between the vertices. Portions of the line falling outside the interpolation zone are excluded from the calculation.

The stepSize argument isn't very important when the surface is a TIN as the default sampling scheme of using input vertices and triangle edge intersections is sufficient to capture all surface information. If the surface is a raster it becomes more important. Generally, the smaller the interval the greater the detail (unless smaller than 1/2 cellsize), but at an increased cost in processing time and size of resulting geometry. The default stepSize for raster based surface is set equal to the cellsize.

ISurface.ZFactor Property

Multiplication factor applied to all z values to provide unit-congruency between coordinate components.

Public Property ZFactor As Double
public double ZFactor {get; set;}

Description

All surface Z values are multiplied by the ZFactor before surface calculations are made. Factoring is necessary for some operations, like slope and line-of-sight, to produce correct results if the Z values are not in the same unit of measure as XY.

Example: if XY units are in meters and Z units are in feet specify a factor of 0.3048 to convert the Z's from feet to meters. If XY units are in feet and Z units are in meters specify a factor of 3.281 to convert the Z's from meters to feet.

Inherited Interfaces

Interfaces Description
IFunctionalSurface Provides access to information about the functional surface, generating heights given x,y locations. Also see IFunctionalSurface2.

Classes that implement ISurface

Classes Description
Tin The Esri TIN component.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.