|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.esri.arcgis.geodatabaseextensions.DynamicSurface
public class DynamicSurface
ESRI DynamicSurface object.
A DynamicSurface is used to extract rasters, TINs, and measurement points/vertices from a terrain based on extent and level of detail.
This class is instantiated via the ITerrain.CreateDynamicSurface member of the Terrain object.
Constructor Summary | |
---|---|
DynamicSurface(Object obj)
Construct a DynamicSurface using a reference to such an object returned from ArcGIS Engine or Server. |
Method Summary | |
---|---|
void |
addISurfaceIntersectionEventsListener(ISurfaceIntersectionEvents theListener)
addISurfaceIntersectionEventsListener. |
void |
contour(IEnvelope pAOI,
double resolution,
double referenceContourHeight,
double interval,
String elevationFieldName,
int indexContourFactor,
String indexContourFieldName,
int digitsAfterDecimalPoint,
IFeatureClass pOutFeatureClass,
ITrackCancel pTrackCancel)
Generate contours of the terrain surface based on a root value and an interval. |
void |
contourList(IEnvelope pAOI,
double resolution,
IDoubleArray pBreaks,
IFeatureClass pOutFeatureClass,
String fieldName,
int digitsAfterDecimalPoint,
ITrackCancel pTrackCancel)
Generate contours of the terrain surface. |
void |
convertToExtent(int rowBegin,
int rowEnd,
int colBegin,
int colEnd,
IEnvelope[] ppExtent)
Create terrain block cursor. |
void |
createBlockCursor(IGeometry pAOI,
double resolution,
boolean bSingleTileOnly,
ITrackCancel pTrackCancel,
ITerrainBlockCursor[] pCursor)
Create terrain block cursor. |
boolean |
equals(Object o)
Compare this object with another |
void |
getLineOfSight(IPoint pObserver,
IPoint pTarget,
double resolution,
ITrackCancel pTrackCancel,
IPoint[] ppObstruction,
IPolyline[] ppVisibleLines,
IPolyline[] ppInvisibleLines,
boolean[] pbIsVisible,
boolean bApplyCurvature,
boolean bApplyRefraction,
Object pRefractionFactor)
Returns a line-of-sight. |
void |
getLineOfSightFeatureCursor(IFeatureCursor pCursor,
double resolution,
ITrackCancel pTrackCancel,
IFeatureClass pOutputLines,
IFeatureClass pObstructionPoints,
boolean bApplyCurvature,
boolean bApplyRefraction,
Object pRefractionFactor)
Get line-of-sight. |
double |
getProfileWeedTolerance()
The profile weeding tolerance. |
int |
getRasterBlockSize()
The pixel block allocation size used when creating a raster. |
ITerrain |
getTerrain()
The source terrain from which the DynamicSurface was derived. |
IPolygon |
getTileBasedDataArea(ITrackCancel pTrackCancel)
Get tile-based terrain's Data Area. |
ITin |
getTin(IEnvelope pAreaOfInterest,
double resolution,
boolean bClipWithAOI,
ITrackCancel pTrackCancel)
Returns a TIN for a given area of interest and terrain pyramid level. |
void |
getVolumeAndArea(IGeometry pAOI,
double resolution,
double reference,
int type,
ITrackCancel pTrackCancel,
boolean[] pbIsOutsideDataArea,
Object[] pVolume,
Object[] pSurfaceArea,
Object[] pProjectedArea)
Returns volume and/or area above or below an input z value. |
double |
getZFactor()
Multiplication factor applied to all z values to provide unit-congruency between coordinate components. |
int |
hashCode()
the hashcode for this object |
void |
interpolateFeatureClass(IFeatureClass pInFeatureClass,
IQueryFilter pFilter,
double resolution,
int type,
IFeatureClass pOutFeatureClass,
ITrackCancel pTrackCancel,
Object pStepSize)
Interpolates z values for features. |
void |
interpolateFeatureClassVertices(IFeatureClass pInFeatureClass,
IQueryFilter pFilter,
double resolution,
int type,
IFeatureClass pOutFeatureClass,
ITrackCancel pTrackCancel)
Interpolates z values for features. |
void |
interpolateFeatureCursor(IFeatureCursor pCursor,
double resolution,
int type,
IFeatureClass pOutFeatureClass,
ITrackCancel pTrackCancel,
Object pStepSize)
Interpolates z values for features. |
void |
interpolateFeatureCursorVertices(IFeatureCursor pCursor,
double resolution,
int type,
IFeatureClass pOutFeatureClass,
ITrackCancel pTrackCancel)
Interpolates z values for features. |
void |
interpolateShape(IGeometry pInShape,
double resolution,
int type,
ITrackCancel pTrackCancel,
IGeometry[] ppOutShape,
Object pStepSize)
Interpolates z values for a defined geometric shape. |
void |
interpolateShapeVertices(IGeometry pInShape,
double resolution,
int type,
ITrackCancel pTrackCancel,
IGeometry[] ppOutShape)
Interpolates z values for a defined geometric shape. |
void |
intersect(IGeometry pAOI,
double resolution,
Object pReferenceSurface,
double referenceRsolution,
boolean bReverse,
IFeatureClass pOutFeatureClass,
String volumeFieldName,
String surfaceAreaFieldName,
String codeFieldName,
ITrackCancel pTrackCancel)
Intersect with another surface. |
boolean |
isCanDoCurvature()
Indicates if earth curvature can be applied. |
boolean |
isMinimizeResourceUsage()
Indicates whether or not resource uasge should be minimized. |
boolean |
isRefineBoundaryMatching()
Indicates whether or not to refine boundary matching. |
void |
queryAsFeatureClass(IFeatureClass pFeatureClass,
IEnvelope pAreaOfInterest,
double resolution,
ITrackCancel pTrackCancel)
Writes terrain measurement points and breakline vertices to a multipoint feature class for a given area of interest and terrain pyramid level. |
void |
queryRaster(IRasterDataset pDataset,
IEnvelope pAreaOfInterest,
double resolution,
int method,
ITrackCancel pTrackCancel)
Writes surface heights to a raster dataset for a given area of interest and terrain pyramid level. |
void |
removeISurfaceIntersectionEventsListener(ISurfaceIntersectionEvents theListener)
removeISurfaceIntersectionEventsListener. |
void |
setMinimizeResourceUsage(boolean pbMinimize)
Indicates whether or not resource uasge should be minimized. |
void |
setProfileWeedTolerance(double pTolerance)
The profile weeding tolerance. |
void |
setRasterBlockSize(int pSize)
The pixel block allocation size used when creating a raster. |
void |
setRefineBoundaryMatching(boolean pbRefine)
Indicates whether or not to refine boundary matching. |
void |
setZFactor(double pFactor)
Multiplication factor applied to all z values to provide unit-congruency between coordinate components. |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface com.esri.arcgis.interop.RemoteObjRef |
---|
getJintegraDispatch, release |
Constructor Detail |
---|
public DynamicSurface(Object obj) throws IOException
obj
to DynamicSurface
. *
DynamicSurface o = (DynamicSurface)obj; // will not work
DynamicSurface o = new DynamicSurface(obj); // Use this constructor instead
* @param obj an object returned from ArcGIS Engine or Server
IOException
- if there are interop problems
DynamicSurface theDynamicSurface = (DynamicSurface) obj;
Method Detail |
---|
public boolean equals(Object o)
equals
in class Object
public int hashCode()
hashCode
in class Object
public void addISurfaceIntersectionEventsListener(ISurfaceIntersectionEvents theListener) throws IOException
theListener
- An object that implements the com.esri.arcgis.geodatabase.ISurfaceIntersectionEvents interface.
IOException
- If there are communications problems.public void removeISurfaceIntersectionEventsListener(ISurfaceIntersectionEvents theListener) throws IOException
theListener
- An object that implements the com.esri.arcgis.geodatabase.ISurfaceIntersectionEvents interface.
IOException
- If there are communications problems.public void setRasterBlockSize(int pSize) throws IOException, AutomationException
setRasterBlockSize
in interface IDynamicSurface
pSize
- The pSize (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getRasterBlockSize() throws IOException, AutomationException
getRasterBlockSize
in interface IDynamicSurface
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ITerrain getTerrain() throws IOException, AutomationException
getTerrain
in interface IDynamicSurface
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ITin getTin(IEnvelope pAreaOfInterest, double resolution, boolean bClipWithAOI, ITrackCancel pTrackCancel) throws IOException, AutomationException
AreaOfInterest (AOI) is an envelope that indicates the area of the terrain to be extracted. If a spatial reference is defined for the envelope the returned TIN will be in that spatial reference. Otherwise the TIN will be in the spatial reference of the terrain.
Resolution is used to indicate which pyramid level to extract from. The pyramid level with a resolution (e.g. z-tolerance) that is equal to or better than the value specified will be used. For example, take a terrain that has pyramids with resolutions 1.0, 2.5, and 5.0. If you give a value of 2.5 then the 2.5 resolution pyramid level is used. If you give 2.4 then the pyramid with a resolution of 1 is used. Specify a value of -1 to obtain the terrain's overview representation.
ClipWithAOI is a boolean that is used to neatline clip the returned TIN to the passed AOI. Otherwise, data outside the AOI envelope may be included. If the terrain is defined with a clip polygon the returned TIN with be clipped by the intersection of the clip polygon with the AOI.
TrackCancel is a pointer to a CancelTracker object. If you are not interested in supporting a user cancel operation then pass a NULL pointer ('Nothing' in VB).
You should call ITerrain.GetPointCount before this GetTIN using the same AOI and resolution parameters to ensure the resulting number of nodes is not too big. You should not attempt to build TINs with more than several million points.
The returned TIN will be in edit mode. To save it to disk and take it out of edit mode you call ITin.SaveAs followed by ITinEdit.StopEditing.
getTin
in interface IDynamicSurface
pAreaOfInterest
- A reference to a com.esri.arcgis.geometry.IEnvelope (in)resolution
- The resolution (in)bClipWithAOI
- The bClipWithAOI (in)pTrackCancel
- A reference to a com.esri.arcgis.system.ITrackCancel (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryRaster(IRasterDataset pDataset, IEnvelope pAreaOfInterest, double resolution, int method, ITrackCancel pTrackCancel) throws IOException, AutomationException
The raster dataset will be written to. The raster must already exist and may be file or SDE based.
AreaOfInterest (AOI) is an envelope that indicates the area of the terrain to be rasterized. If data already exists in the output raster for part of this area it will be overwritten.
Resolution is used to indicate which pyramid level to extract from. The pyramid level with a resolution (e.g. z-tolerance) that is equal to or better than the value specified will be used. For example, take a terrain that has pyramids with resolutions 1.0, 2.5, and 5.0. If you give a value of 2.5 then the 2.5 resolution pyramid level is used. If you give 2.4 then the pyramid with a resolution of 1 is used. Specify a value of -1 to obtain the terrain's overview representation.
The method is the type of interpolation. It may be esriLinearInterpolation or esriNaturalNeighborInterpolation.
TrackCancel is a pointer to a CancelTracker object. If you are not interested in supporting a user cancel operation then pass a NULL pointer ('Nothing' in VB).
queryRaster
in interface IDynamicSurface
pDataset
- A reference to a com.esri.arcgis.geodatabase.IRasterDataset (in)pAreaOfInterest
- A reference to a com.esri.arcgis.geometry.IEnvelope (in)resolution
- The resolution (in)method
- A com.esri.arcgis.geodatabase.esriSurfaceInterpolationType constant (in)pTrackCancel
- A reference to a com.esri.arcgis.system.ITrackCancel (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryAsFeatureClass(IFeatureClass pFeatureClass, IEnvelope pAreaOfInterest, double resolution, ITrackCancel pTrackCancel) throws IOException, AutomationException
FeatureClass is an existing, z-aware, multipoint or point feature class that shapes will be added to. The shapes are those measurement points and breakline vertices that would be used to construct a terrain representation based on the following parameters.
AreaOfInterest (AOI) is an envelope that indicates the area of the terrain to be extracted. If a NULL is passed the entire extent is used.
Resolution is used to indicate which pyramid level to extract from. The pyramid level with a resolution (e.g. z-tolerance) that is equal to or better than the value specified will be used. For example, take a terrain that has pyramids with resolutions 1.0, 2.5, and 5.0. If you give a value of 2.5 then the 2.5 resolution pyramid level is used. If you give 2.4 then the pyramid with a resolution of 1 is used. Specify a value of -1 to obtain the terrain's overview representation.
TrackCancel is a pointer to a CancelTracker object. If you are not interested in supporting a user cancel operation then pass a NULL pointer ('Nothing' in VB).
queryAsFeatureClass
in interface IDynamicSurface
pFeatureClass
- A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)pAreaOfInterest
- A reference to a com.esri.arcgis.geometry.IEnvelope (in)resolution
- The resolution (in)pTrackCancel
- A reference to a com.esri.arcgis.system.ITrackCancel (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setMinimizeResourceUsage(boolean pbMinimize) throws IOException, AutomationException
setMinimizeResourceUsage
in interface IDynamicSurface2
pbMinimize
- The pbMinimize (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isMinimizeResourceUsage() throws IOException, AutomationException
By default, MinimizeResourceUsage is set to FALSE: if possible, it will construct TINs, from which to interpolate heights, using multiple terrain tiles at once. This applies to interpolation for both features and rasters. Whether or not it can do this depends on the amount of data required for the given area of interest, desired pyramid level, and available physical memory. This approach tends to improve performance at the expense of some memory resources. Setting the property to TRUE forces the terrain to triangulate no more than one tile at a time in memory, interpolating heights in an iterative, chunked, fashion. This sacrifices performance in favor of minimizing memory use.
isMinimizeResourceUsage
in interface IDynamicSurface2
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setRefineBoundaryMatching(boolean pbRefine) throws IOException, AutomationException
setRefineBoundaryMatching
in interface IDynamicSurface2
pbRefine
- The pbRefine (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isRefineBoundaryMatching() throws IOException, AutomationException
Operations such as rasterization and feature interpolation are performed iteratively on chuncks of terrain data. One or more contiguous terrain tiles are used to form chunks. When using a pyramid level other than full resolution the surfaces between neighboring chunk boundaries may not align, resulting in artifacts. Setting RefineBoundaryMatching to TRUE improves the match between these boundaries.
isRefineBoundaryMatching
in interface IDynamicSurface2
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void interpolateShape(IGeometry pInShape, double resolution, int type, ITrackCancel pTrackCancel, IGeometry[] ppOutShape, Object pStepSize) throws IOException, AutomationException
pInShape is the input geometry for which heights will be interpolated. The shape types supported are points, multipoints, polylines, and polygons.
Resolution controls which pyramid level of the terrain to use as a surface. Depending on the type of filter used to generate the terrain pyramid, resolution represents either the z-tolerance or window size of the desired pyramid level. Pass a value of 0.0 to use the full resolution surface.
Type is used to control which interpolant is applied; linear or natural neighbors.
pTrackCancel supports process interruption. This can be set to NULL ('Nothing' in VB).
pOutShape is a placeholder for the resulting 3D geometry. It does not need to reference an instantiated, empty geometry. The geometry will be created by the function. The result will be NULL ('Nothing' in VB) if the input geometry does not have any overlap with the 2D extent of the surface.
stepSize is used to densify input polylines and polygon boundaries. If stepsize is omitted input polylines and polygon boundaries will be densified where they intersect terrain triangle edges. Typically, stepSize should be omitted when using linear interpolation because the 'natural' densification applied with triangle edges is sufficient to capture what information is available in the surface.
Notes
This function is best used to interpolate heights for one feature that crosses over multiple terrain tiles which, at the desired resolution, can't all be held in memory. An alternative is IDynamicSurface2.InterpolateFeatureClass, which is optimized for processing multiple features. If multiple features fall within an extent of the terrain which can be held in memory (estimate this using ITerrain.GetPointCount) then consider using IDynamicSurface.GetTin followed by ISurface.InterpolateShape on the TIN. Another approach would be to retreive a TIN using ITerrainLayer.GetCurrentSurface followed by ISurface.InterpolateShape on the TIN if the current representation of a terrain layer's surface is sufficient.
interpolateShape
in interface IDynamicSurface2
pInShape
- A reference to a com.esri.arcgis.geometry.IGeometry (in)resolution
- The resolution (in)type
- A com.esri.arcgis.geodatabase.esriSurfaceInterpolationType constant (in)pTrackCancel
- A reference to a com.esri.arcgis.system.ITrackCancel (in)ppOutShape
- A reference to a com.esri.arcgis.geometry.IGeometry (out: use single element array)pStepSize
- A Variant (in, optional, pass null if not required)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void interpolateShapeVertices(IGeometry pInShape, double resolution, int type, ITrackCancel pTrackCancel, IGeometry[] ppOutShape) throws IOException, AutomationException
pInShape is the input geometry for which heights will be interpolated. The shape types supported are points, multipoints, polylines, and polygons. Heights will only be calculated for input vertices. No densification of polyline or polygon vertices takes place.
Resolution controls which pyramid level of the terrain to use as a surface. Depending on the type of filter used to generate the terrain pyramid, resolution represents either the z-tolerance or window size of the desired pyramid level. Pass a value of 0.0 to use the full resolution surface.
Type is used to control which interpolant is applied; linear or natural neighbors.
pTrackCancel supports process interruption. This can be set to NULL ('Nothing' in VB).
pOutShape is a placeholder for the resulting 3D geometry. It does not need to reference an instantiated object. The geometry will be created by the function. The result will be NULL ('Nothing' in VB) if any part of the geometry falls outside the surface.
Notes
This function is best used to interpolate heights for one feature that crosses over multiple terrain tiles which, at the desired resolution, can't all be held in memory. An alternative is IDynamicSurface2.InterpolateFeatureClassVertices, which is optimized for processing multiple features. If multiple features fall within an extent of the terrain which can be held in memory (estimate this using ITerrain.GetPointCount) then consider using IDynamicSurface.GetTin followed by ISurface.InterpolateShapeVertices on the TIN. Another approach would be to retreive a TIN using ITerrainLayer.GetCurrentSurface followed by ISurface.InterpolateShapeVertices on the TIN if the current representation of a terrain layer's surface is sufficient.
interpolateShapeVertices
in interface IDynamicSurface2
pInShape
- A reference to a com.esri.arcgis.geometry.IGeometry (in)resolution
- The resolution (in)type
- A com.esri.arcgis.geodatabase.esriSurfaceInterpolationType constant (in)pTrackCancel
- A reference to a com.esri.arcgis.system.ITrackCancel (in)ppOutShape
- A reference to a com.esri.arcgis.geometry.IGeometry (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void interpolateFeatureClass(IFeatureClass pInFeatureClass, IQueryFilter pFilter, double resolution, int type, IFeatureClass pOutFeatureClass, ITrackCancel pTrackCancel, Object pStepSize) throws IOException, AutomationException
InterpolateFeatureClass interpolates heights for shapes from an input feature class into a new feature class. The output will contain 3D geometry.
pInFeatureClass contains the input features. The shape types supported are points, multipoints, polylines, and polygons.
pFilter is a query filter used on the input features. It may be set to NULL ('Nothing n VB).
Resolution controls which pyramid level of the terrain to use as a surface. Depending on the type of filter used to generate the terrain pyramid, resolution represents either the z-tolerance or window size of the desired pyramid level. Pass a value of 0.0 to use the full resolution surface.
Type is used to control which interpolant is applied; linear or natural neighbors.
pOutFeatureClass is where features are written. It must be z-enabled (i.e.; IGeometryDef.HasZ = TRUE). Attribute fields and values will be copied from the input to the output. Input features that fall completely off the surface will not be written to the output.
pTrackCancel supports process interruption. This can be set to NULL ('Nothing' in VB).
stepSize is used to densify input polylines and polygon boundaries. If stepsize is omitted input polylines and polygon boundaries will be densified where they intersect terrain triangle edges. Typically, stepSize should be omitted when using linear interpolation because the 'natural' densification applied with triangle edges is sufficient to capture what information is available in the surface.
interpolateFeatureClass
in interface IDynamicSurface2
pInFeatureClass
- A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)pFilter
- A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)resolution
- The resolution (in)type
- A com.esri.arcgis.geodatabase.esriSurfaceInterpolationType constant (in)pOutFeatureClass
- A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)pTrackCancel
- A reference to a com.esri.arcgis.system.ITrackCancel (in)pStepSize
- A Variant (in, optional, pass null if not required)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void interpolateFeatureCursor(IFeatureCursor pCursor, double resolution, int type, IFeatureClass pOutFeatureClass, ITrackCancel pTrackCancel, Object pStepSize) throws IOException, AutomationException
If stepsize is omitted, and the interpolation option is set to natural neighbors, input polylines and polygon boundaries will be densified where they intersect terrain triangle edges.
interpolateFeatureCursor
in interface IDynamicSurface2
pCursor
- A reference to a com.esri.arcgis.geodatabase.IFeatureCursor (in)resolution
- The resolution (in)type
- A com.esri.arcgis.geodatabase.esriSurfaceInterpolationType constant (in)pOutFeatureClass
- A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)pTrackCancel
- A reference to a com.esri.arcgis.system.ITrackCancel (in)pStepSize
- A Variant (in, optional, pass null if not required)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void interpolateFeatureClassVertices(IFeatureClass pInFeatureClass, IQueryFilter pFilter, double resolution, int type, IFeatureClass pOutFeatureClass, ITrackCancel pTrackCancel) throws IOException, AutomationException
interpolateFeatureClassVertices
in interface IDynamicSurface2
pInFeatureClass
- A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)pFilter
- A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)resolution
- The resolution (in)type
- A com.esri.arcgis.geodatabase.esriSurfaceInterpolationType constant (in)pOutFeatureClass
- A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)pTrackCancel
- A reference to a com.esri.arcgis.system.ITrackCancel (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void interpolateFeatureCursorVertices(IFeatureCursor pCursor, double resolution, int type, IFeatureClass pOutFeatureClass, ITrackCancel pTrackCancel) throws IOException, AutomationException
interpolateFeatureCursorVertices
in interface IDynamicSurface2
pCursor
- A reference to a com.esri.arcgis.geodatabase.IFeatureCursor (in)resolution
- The resolution (in)type
- A com.esri.arcgis.geodatabase.esriSurfaceInterpolationType constant (in)pOutFeatureClass
- A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)pTrackCancel
- A reference to a com.esri.arcgis.system.ITrackCancel (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isCanDoCurvature() throws IOException, AutomationException
Indicates whether earth curvature correction can be applied to line of sight functions. The result will be TRUE as long as both XY and Z coordinate systems for the terrain are defined.
isCanDoCurvature
in interface IDynamicSurface2
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void getLineOfSight(IPoint pObserver, IPoint pTarget, double resolution, ITrackCancel pTrackCancel, IPoint[] ppObstruction, IPolyline[] ppVisibleLines, IPolyline[] ppInvisibleLines, boolean[] pbIsVisible, boolean bApplyCurvature, boolean bApplyRefraction, Object pRefractionFactor) throws IOException, AutomationException
getLineOfSight
in interface IDynamicSurface2
pObserver
- A reference to a com.esri.arcgis.geometry.IPoint (in)pTarget
- A reference to a com.esri.arcgis.geometry.IPoint (in)resolution
- The resolution (in)pTrackCancel
- A reference to a com.esri.arcgis.system.ITrackCancel (in)ppObstruction
- A reference to a com.esri.arcgis.geometry.IPoint (out: use single element array)ppVisibleLines
- A reference to a com.esri.arcgis.geometry.IPolyline (out: use single element array)ppInvisibleLines
- A reference to a com.esri.arcgis.geometry.IPolyline (out: use single element array)pbIsVisible
- The pbIsVisible (out: use single element array)bApplyCurvature
- The bApplyCurvature (in)bApplyRefraction
- The bApplyRefraction (in)pRefractionFactor
- A Variant (in, optional, pass null if not required)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void getLineOfSightFeatureCursor(IFeatureCursor pCursor, double resolution, ITrackCancel pTrackCancel, IFeatureClass pOutputLines, IFeatureClass pObstructionPoints, boolean bApplyCurvature, boolean bApplyRefraction, Object pRefractionFactor) throws IOException, AutomationException
getLineOfSightFeatureCursor
in interface IDynamicSurface2
pCursor
- A reference to a com.esri.arcgis.geodatabase.IFeatureCursor (in)resolution
- The resolution (in)pTrackCancel
- A reference to a com.esri.arcgis.system.ITrackCancel (in)pOutputLines
- A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)pObstructionPoints
- A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)bApplyCurvature
- The bApplyCurvature (in)bApplyRefraction
- The bApplyRefraction (in)pRefractionFactor
- A Variant (in, optional, pass null if not required)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IPolygon getTileBasedDataArea(ITrackCancel pTrackCancel) throws IOException, AutomationException
GetTileBasedDataArea returns a polygon that represents the union of the terrain's data tiles. It ignores the presense of any clip or erase features. This function provides a relatively fast means of extracting a rough approximation of the terrain's data area.
pTrackCancel is a reference to a CancelTracker which can be used to escape the process. A NULL pointer ('Nothing' in VB) can be past if desired.
getTileBasedDataArea
in interface IDynamicSurface2
pTrackCancel
- A reference to a com.esri.arcgis.system.ITrackCancel (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void createBlockCursor(IGeometry pAOI, double resolution, boolean bSingleTileOnly, ITrackCancel pTrackCancel, ITerrainBlockCursor[] pCursor) throws IOException, AutomationException
Creates a terrain block cursor based on the desired area of intereset (AOI) and pyramid resolution.
pAOI represents the area that needs to be included in the cursors process. It can be an envelope, polygon, or NULL. If NULL, the full extent of the terrain will be used.
Resolution specifies which pyramid level to use when generating blocks.
bSingleTileOnly controls whether blocks are strictly defined only from individual tiles (one tile, one block) or if they can be aggregates, made from multiple tiles. Usually, blocks are aggregates, comprised of multiple tiles. Generally, aggregation is more efficient and should be used but some applications may require strict tile based granularity of blocks. If that's the case, set this to TRUE. A value of FALSE means blocks are allowed to be aggregated. This does not guarantee they will be but can be depending on several variables (i.e., value of MinimizeResourceUsage, availability of memory, amount of data in tiles under consideration for aggregation).
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.
pCursor is the returned TerrainBlockCursor.
Notes:
This method honors setting for MinimizeResourceUsage. If MinimizeResourceUsage is TRUE, then each block will be a single tile regardless of the setting for bSingleTileOnly.
createBlockCursor
in interface IDynamicSurface3
pAOI
- A reference to a com.esri.arcgis.geometry.IGeometry (in)resolution
- The resolution (in)bSingleTileOnly
- The bSingleTileOnly (in)pTrackCancel
- A reference to a com.esri.arcgis.system.ITrackCancel (in)pCursor
- A reference to a com.esri.arcgis.geodatabaseextensions.ITerrainBlockCursor (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void convertToExtent(int rowBegin, int rowEnd, int colBegin, int colEnd, IEnvelope[] ppExtent) throws IOException, AutomationException
Returns the envelope covering the XY extent of the terrain tiles given by row and column. See ITerrain.QueryTileInfo for more information on the terrain tile system.
convertToExtent
in interface IDynamicSurface3
rowBegin
- The rowBegin (in)rowEnd
- The rowEnd (in)colBegin
- The colBegin (in)colEnd
- The colEnd (in)ppExtent
- A reference to a com.esri.arcgis.geometry.IEnvelope (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void contourList(IEnvelope pAOI, double resolution, IDoubleArray pBreaks, IFeatureClass pOutFeatureClass, String fieldName, int digitsAfterDecimalPoint, ITrackCancel pTrackCancel) throws IOException, AutomationException
Generates contours at specified heights.
pAOI is the area of interest. This is the area that will be contoured. Pass a NULL pointer if you want the entire terrain to be contoured.
Resolution is used to indicate which pyramid level of the surface to use. This should match the resolution of an existing pyramid level. If there's not an exact match the next smaller resolution level (more detailed) that's actually in the terrain will be used.
pBreaks is an array containing the heights of the desired contours.
pOutFeatureClass is the target 2D polyline feature class where the contours will be written.
FieldName is the name of the field where the height for each contour is written. The field type can be long or double. If it's a long, the digitsAfterDecimalPoint parameter must be 0.
digitsAfterDecimalPoint controls the way contour heights are treated when the contour field type is a double. Use this to round to the nearest decimal. A zero must be used if the elevation field type is long.
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 height field must be type double.
Local pits at same height of contour may result in degenerate contours. Find and eliminate searching for 0 length lines in the resulting feature class.
This method honors setting for MinimizeResourceUsage.
contourList
in interface IDynamicSurface3
pAOI
- A reference to a com.esri.arcgis.geometry.IEnvelope (in)resolution
- The resolution (in)pBreaks
- A reference to a com.esri.arcgis.system.IDoubleArray (in)pOutFeatureClass
- A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)fieldName
- The fieldName (in)digitsAfterDecimalPoint
- The digitsAfterDecimalPoint (in)pTrackCancel
- A reference to a com.esri.arcgis.system.ITrackCancel (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void contour(IEnvelope pAOI, double resolution, double referenceContourHeight, double interval, String elevationFieldName, int indexContourFactor, String indexContourFieldName, int digitsAfterDecimalPoint, IFeatureClass pOutFeatureClass, ITrackCancel pTrackCancel) throws IOException, AutomationException
Generates contours from the terrain writing the output to a feature class.
pAOI is the area of interest. This is the area that will be contoured. Pass a NULL pointer if you want the entire terrain to be contoured.
Resolution is used to indicate which pyramid level of the surface to use. This should match the resolution of an existing pyramid level. If there's not an exact match the next smaller resolution level (more detailed) that's actually in the terrain will be used.
referenceHeight and interval are used together to determine what contours are made. The referenceHeight is a starting point from which you add and subtract the interval. This gives you a set of values that go on forever in both positive and negative directions (...-10, -5, 0, 5, 10,...). The contours that actually get created are those that belong to this set and are also within the z range of the surface. The referenceHeight used by most applications is 0.0. A non-zero value acts as an offset. For example a root of 1.0 and interval of 5 used on a surface with a z range between 100 and 120 will yield contours with heights at 101, 106, 111, and 116.
elevationFieldName is the name of the field that contour heights will be written to. The field can already exist in pOutFeatureClass or you can rely on the method to add the field which it will do if it doesn't find it. If it's created ahead of time, which is recomended, make sure the field type is long or double.
indexContourFactor is the multiple used to flag special contours for the sake of cartographic embellishment. Typically, topographic maps draw every 5th contour in a thicker line symbol so the map is easier to read. To replicate that provide a factor of 5. The determination of 'nth contour' is made relative to the referenceHeight.
indexContourFieldName is the name of the field used distinguish regular contours from index contours. Regular contours are assigned a value of 0. Index contours a value of 1. The field can already exist in pOutFeatureClass or you can rely on the method to add the field which it will do if it doesn't find it. If it's created ahead of time, which is recomended, make sure the field type is small integer or integer.
digitsAfterDecimal is used to define the output field type and number of decimal places for the output elevation field if this method creates the field. If the field already exists digitsAfterDecimal is ignored. Otherwise, the field will be created. If digitsAfterDecimal is 0 the field type will be a long. A non-zero value will result in a field type of double. If the output feature class is a shapefile or resides in an SDE geodatabase the number of decimal places will be set to digitsAfterDecimal. It's not used for file and personal geodatabases since these do not support the property. See field 'scale' for more information.
pOutFeatureClass is the target 2D polyline feature class where the contours will be written.
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:
While this method will add fields if they don't already exist it's best to add them first. This gives you the opportunity to place the feature class into LoadOnly mode (if not a shapefile) before calling the method. It's not recommended for anything to be adding fields while in LoadOnly mode.
The index contour field must be type SmallInteger or Integer.
Local pits at same height of contour may result in degenerate contours. Find and eliminate searching for 0 length lines in the resulting feature class.
This method honors the setting for MinimizeResourceUsage.
contour
in interface IDynamicSurface3
pAOI
- A reference to a com.esri.arcgis.geometry.IEnvelope (in)resolution
- The resolution (in)referenceContourHeight
- The referenceContourHeight (in)interval
- The interval (in)elevationFieldName
- The elevationFieldName (in)indexContourFactor
- The indexContourFactor (in)indexContourFieldName
- The indexContourFieldName (in)digitsAfterDecimalPoint
- The digitsAfterDecimalPoint (in)pOutFeatureClass
- A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)pTrackCancel
- A reference to a com.esri.arcgis.system.ITrackCancel (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void getVolumeAndArea(IGeometry pAOI, double resolution, double reference, int type, ITrackCancel pTrackCancel, boolean[] pbIsOutsideDataArea, Object[] pVolume, Object[] pSurfaceArea, Object[] pProjectedArea) throws IOException, AutomationException
Returns the volume and/or area that falls between the surface and a plane of a given height. Values can be calculated using the entire surface or using only that portion within an envelope or polygon.
pAOI is the area of interest. It can be set to NULL (nOthing in VB), in which case the entire surface is considered. It can also be set to either an envelope or polygon. These limit that calculation to a given area.
Resolution is used to indicate which pyramid level of the surface to use. This should match the resolution of an existing pyramid level. If there's not an exact match the next highest level that's actually in the terrain will be used.
Reference is the height, or z value, of the plane the calculation will be relative to.
Type is used to control whether the calculation is made for the area below the plane and the top side of the surface or above the plane and the bottom of the surface.
pTrackCancel is a reference to a CancelTracker and permits the user to interrupt the process. You can pass NULL (Nothing in VB) to bypass this functioanlity.
pVolume is an optional output. If used, it should be specified with a double. The volume represents the cubic area between the plane and the surface. You control if it's the volume below the plane and the top of the surface or the above the plane and the underside of the surface via the Type parameter. If you're not interested in volume you can avoid computational effort by omitting this.
pSurfaceArea is an optional output. If used, it should be specified with a double. The surface area is the area of the surface, taking slope into consideration, that, depending on the setting of the Type parameter, is either underneath or above the given plane. Surface area is always greater than projected area unless the surface is flat. If you're not interested in surface area you can avoid computational effort by omitting this.
pProjectedArea is an optional output. If used, it should be specified with a double. The area is the 2D portion of the surface that, depending on the setting of the Type parameter, is either underneath or above the given plane. Projected area is always less than surface area unless the surface is flat. If you're not interested in area you can avoid computational effort by omitting this.
getVolumeAndArea
in interface IDynamicSurface3
pAOI
- A reference to a com.esri.arcgis.geometry.IGeometry (in)resolution
- The resolution (in)reference
- The reference (in)type
- A com.esri.arcgis.geodatabase.esriPlaneReferenceType constant (in)pTrackCancel
- A reference to a com.esri.arcgis.system.ITrackCancel (in)pbIsOutsideDataArea
- The pbIsOutsideDataArea (out: use single element array)pVolume
- A Variant (in/out: use single element array, optional, pass single element of null if not required)pSurfaceArea
- A Variant (in/out: use single element array, optional, pass single element of null if not required)pProjectedArea
- A Variant (in/out: use single element array, optional, pass single element of null if not required)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void intersect(IGeometry pAOI, double resolution, Object pReferenceSurface, double referenceRsolution, boolean bReverse, IFeatureClass pOutFeatureClass, String volumeFieldName, String surfaceAreaFieldName, String codeFieldName, ITrackCancel pTrackCancel) throws IOException, AutomationException
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:
intersect
in interface IDynamicSurface3
pAOI
- A reference to a com.esri.arcgis.geometry.IGeometry (in)resolution
- The resolution (in)pReferenceSurface
- A reference to another Object (IUnknown) (in)referenceRsolution
- The referenceRsolution (in)bReverse
- The bReverse (in)pOutFeatureClass
- A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)volumeFieldName
- The volumeFieldName (in)surfaceAreaFieldName
- The surfaceAreaFieldName (in)codeFieldName
- The codeFieldName (in)pTrackCancel
- A reference to a com.esri.arcgis.system.ITrackCancel (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setProfileWeedTolerance(double pTolerance) throws IOException, AutomationException
setProfileWeedTolerance
in interface IDynamicSurface3
pTolerance
- The pTolerance (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public double getProfileWeedTolerance() throws IOException, AutomationException
getProfileWeedTolerance
in interface IDynamicSurface3
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public double getZFactor() throws IOException, AutomationException
getZFactor
in interface IDynamicSurface3
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setZFactor(double pFactor) throws IOException, AutomationException
setZFactor
in interface IDynamicSurface3
pFactor
- The pFactor (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |