Intersect with another surface.
[Visual Basic .NET] Public Sub Intersect ( _ ByVal pAOI As IGeometry, _ ByVal Resolution As Double, _ ByVal pReferenceSurface As Object, _ ByVal referenceRsolution As Double, _ ByVal bReverse As Boolean, _ ByVal pOutFeatureClass As IFeatureClass, _ ByVal volumeFieldName As String, _ ByVal surfaceAreaFieldName As String, _ ByVal codeFieldName As String, _ ByVal pTrackCancel As ITrackCancel _ )
[C#] public void Intersect ( IGeometry pAOI, double Resolution, object pReferenceSurface, double referenceRsolution, bool bReverse, IFeatureClass pOutFeatureClass, string volumeFieldName, string surfaceAreaFieldName, string codeFieldName, ITrackCancel pTrackCancel );
[C++]
HRESULT Intersect(
IGeometry* pAOI,
double Resolution,
LPUNKNOWN pReferenceSurface,
double referenceRsolution,
VARIANT_BOOL bReverse,
IFeatureClass* pOutFeatureClass,
BSTR volumeFieldName,
BSTR surfaceAreaFieldName,
BSTR codeFieldName,
ITrackCancel* pTrackCancel
);
[C++]Parameters
pAOI [in]pAOI is a parameter of type IGeometry
Resolution [in] Resolution is a parameter of type double pReferenceSurface [in] pReferenceSurface is a parameter of type LPUNKNOWN referenceRsolution [in] referenceRsolution is a parameter of type double bReverse [in] bReverse is a parameter of type VARIANT_BOOL pOutFeatureClass [in]pOutFeatureClass is a parameter of type IFeatureClass
volumeFieldName [in] volumeFieldName is a parameter of type BSTR surfaceAreaFieldName [in] surfaceAreaFieldName is a parameter of type BSTR codeFieldName [in] codeFieldName is a parameter of type BSTR pTrackCancel [in]pTrackCancel is a parameter of type ITrackCancel
Product Availability
Description
Calculates the geometric intersection and difference between two surfaces. The output is a polygon feature class. Each polygon represents a contiguous region where the terrain is either above, below, or equal in height to the reference surface. The volumetric difference, surface area of the terrain, and code indicating the above, below, or equal status is written as attribution for each output polygon.
pAOI is a reference to an envelope or polygon that defines the area of interest. The common area between both surfaces and pAOI with be processed.
Resolution indicates which pyramid level to use for the dynamic surface in the calculation. Provide the resolution of the desired pyramid level. If there isn't an exact match between the provided resolution and those of any pyramid levels in the terrain the next most detailed one in the terrain will be used.
pReferenceSurface is either a DynamicSurface (i.e., made from a terrain dataset via ITerrain.CreateDynamicSurface) or TIN. This is the other surface used in the intersection. Output polygon attribution for above, below, and equal are relative to the reference surface.
referenceResolution indicates which pyramid level to use for the reference surface when that surface is a terrain. Provide the resolution of the desired pyramid level. If there isn't an exact match between the provided resolution and those of any pyramid levels in the terrain the next most detailed one in the terrain will be used.
bReverse, when set to TRUE, will swap the reference surface with this surface. That means output codes for above and below will be inverted and the surface area will be based on the other surface.
pOutFeatureClass is the target polygon feature class. It is 2D (not z-aware) and should contain three fields to hold output attribution. The fields for volume and surface area should be doubles and the code field an integer.
volumeFieldName is the name of an existing field into which values for volume will be placed.
surfaceAreaFieldName is the name of an existing field into which values for surface area will be placed.
codeFieldName is the name of an existing field into which values for above (1), below (-1), and equal (0), will be placed.
pTrackCancel is a reference to a CancelTracker to support progress reporting and the ability to halt the process. To bypass this feature pass a NULL pointer.
Notes:
- The volume, surface area, and code fields should already exist in the output feature class. With them in place, no further schema edits have to take place on the feature class. Therefore, you can have it placed in IFeatureClassLoad.LoadOnlyMode before passing it to Intersect. If the fields have not already been created, Intersect will make them but this is not advised if you also want to take advantage of LoadOnlyMode (i.e., it's not recommended to perform a schema edit while in LoadOnlyMode).