|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.esri.arcgis.geodatabaseextensions.Terrain
public class Terrain
The Esri Terrain component.
A Terrain is used to define a surface based on vector measurements stored in the geodatabase. Terrains live inside feature datasets and are comprised of one or more feature classes and rules. Rules govern how the measurements associated with each feature class contribute to define the surface.
Constructor Summary | |
---|---|
Terrain(Object obj)
Construct a Terrain using a reference to such an object returned from ArcGIS Engine or Server. |
Method Summary | |
---|---|
void |
addDataSource(ITerrainDataSource pDataSource)
Adds a reference to a feature class. |
void |
addDataSourceData(int index,
IEnvelope pAOI,
IFeatureClass pInFC,
ITrackCancel pTrackCancel)
Appends measurements to a terrain data source (feature class). |
void |
addDataSourceData2(int index,
String pointCountFieldName,
IGeometry pAOI,
IFeatureClass pInFC,
ITrackCancel pTrackCancel)
Appends measurements to terrain data source (feature class). |
void |
addITerrainEditEventsListener(ITerrainEditEvents theListener)
addITerrainEditEventsListener. |
void |
addPyramidLevel(ITerrainPyramidLevel pPyramidLevel)
Adds a pyramid level. |
void |
analyze(int tableComponents)
Analyze the data to update/generate DBMS statistics. |
void |
build(ITrackCancel pTrackCancel)
Constructs the terrain. |
void |
calculateFieldStatistics(int index,
IStringArray pFieldNames,
ITrackCancel pTrackCancel)
Calculate Terrain blob field statistics of the specified embedded data source. |
boolean |
canCopy()
True if this dataset can be copied. |
boolean |
canDelete()
True if this dataset can be deleted. |
boolean |
canRename()
True if this dataset can be renamed. |
void |
changeMaxScale(int index,
int newScale)
Modifies the largest display scale used for a particular level of a terrain pyramid. |
void |
changeResolutionBounds(int index,
double lowerBound,
double upperBound)
Change the resolution bounds of a data source. |
void |
changeSchemaLock(int schemaLock)
Changes a schema lock. |
void |
changeUsageInOverview(int index,
boolean bApply)
Change the ApplyToOverviewTerrain property of the specified data source. |
IDataset |
copy(String copyName,
IWorkspace copyWorkspace)
Copies this dataset to a new dataset with the specified name. |
IDynamicSurface |
createDynamicSurface()
Returns an implicit surface from which TINs and rasters are derived. |
void |
delete()
Deletes this dataset. |
void |
deleteDataSourceData(int index,
IEnvelope pAOI,
ITrackCancel pTrackCancel)
Removes measurements from a terrain data source (feature class). |
void |
deleteDataSourceData2(int index,
String pointCountFieldName,
IGeometry pAOI,
ITrackCancel pTrackCancel)
Removes measurements from a terrain data source (feature class). |
void |
deleteDataSourceDataByFC(int index,
String pointCountFieldName,
IFeatureClass pFC,
boolean bSparseData,
ITrackCancel pTrackCancel)
Removes measurements from a terrain data source (feature class). |
boolean |
equals(Object o)
Compare this object with another |
void |
extractFromEmbeddedDataSource(int index,
IFeatureClass pFeatureClass,
IEnvelope pAOI,
double resolution,
ITrackCancel pTrackCancel)
Copies features of an embedded data source to the specified feature class. |
int |
getAllowableComponents()
The allowable components to be analyzed. |
String |
getBrowseName()
The browse name of the dataset. |
String |
getCategory()
The category of the dataset. |
void |
getCurrentSchemaLocks(IEnumSchemaLockInfo[] schemaLockInfo)
The list of current locks. |
IDEDataset |
getDataElement()
The data element corresponding to the dataset component. |
ITerrainDataSource |
getDataSource(int index)
Returns the data source specified by the index. |
int |
getDataSourceCount()
The number of data sources participating in the terrain. |
IEnumEnvelope |
getDirtyTiles()
Returns all dirty tiles. |
String |
getEmbeddedDataSourceShapeFieldName()
Returns the 'Shape' field name of the embedded data sources. |
IEnvelope |
getExtent()
The extent of the GeoDataset. |
IFeatureDataset |
getFeatureDataset()
The feature dataset which contains the terrain. |
IName |
getFullName()
The associated name object. |
int |
getID()
The database identifier of the terrain. |
int |
getMaxOverviewTerrainPoints()
The maximum number of points in the most generalized representation of a Terrain. |
int |
getMaxPointsPerShape()
The maximum number of vertices per multipoint. |
IPropertySet |
getMetadata()
The PropertySet containing metadata. |
String |
getName()
The name of the Dataset. |
INativeType |
getNativeType()
The native type. |
IDataset |
getParent()
The containing parent dataset. |
double |
getPointCount(IEnvelope pAOI,
double resolution)
Returns the approximate number of points in the terrain within a given area and at a particular pyramid level. |
IPropertySet |
getPropertySet()
The set of properties for the dataset. |
ITerrainPyramidLevel |
getPyramidLevel(int index)
Returns the pyramid level specified by the index. |
int |
getPyramidLevelCount()
The number of pyramid levels in the terrain. |
int |
getPyramidType()
The pyramid type of this Terrain. |
double |
getSize()
The total number of points in the Terrain. |
ISpatialReference |
getSpatialReference()
The spatial reference of the GeoDataset. |
IEnumDataset |
getSubsets()
Datasets contained within this dataset. |
double |
getTileSize()
The horizontal distance used to spatially index and partition terrain data. |
int |
getType()
The type of the Dataset. |
IWorkspace |
getWorkspace()
The workspace containing this dataset. |
int |
hashCode()
the hashcode for this object |
boolean |
isCanEditMetadata()
Indicates if metadata can be edited. |
boolean |
isDirty()
Indicates whether or not a partial rebuild is needed. |
boolean |
isValid()
Indicates whether or not a full build is required. |
void |
queryTileInfo(int[] pRowBegin,
int[] pRowEnd,
int[] pColBegin,
int[] pColEnd,
double[] pXMin,
double[] pYMin,
double[] pTileSize,
int[] pRowCountDomain,
int[] pColCountDomain)
Returns horizontal partitioning information about the terrain data. |
void |
removeDataSource(int index)
Removes reference to a participating feature class. |
void |
removeITerrainEditEventsListener(ITerrainEditEvents theListener)
removeITerrainEditEventsListener. |
void |
removePyramidLevel(int index)
Removes a pyramid level. |
void |
rename(String name)
Renames this Dataset. |
void |
replaceDataSourceData(int index,
IEnvelope pAOI,
IFeatureClass pInFC,
ITrackCancel pTrackCancel)
Replaces measurements from a terrain data source (feature class) with measurements in another feature class. |
void |
replaceDataSourceData2(int index,
String pointCountFieldName,
IGeometry pAOI,
IFeatureClass pInFC,
ITrackCancel pTrackCancel)
Replaces measurements from a terrain data source (feature class) with measurements in another feature class. |
void |
searchFromEmbeddedDataSource(int index,
IEnvelope pAOI,
double resolution,
IStringArray pSubFields,
IFeatureCursor[] ppCursor,
ILongArray[] ppFieldIndices)
Returns a Search Cursor on the specified embedded data source. |
void |
setBrowseName(String name)
The browse name of the dataset. |
void |
setMetadata(IPropertySet ppPropertySet)
The PropertySet containing metadata. |
void |
synchronize(int action,
int interval)
Updates metadata with the current properties; may create metadata if it doesn't already exist. |
void |
updateExtent(ITrackCancel pTrackCancel)
Refresh terrain's extent. |
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 Terrain(Object obj) throws IOException
obj
to Terrain
. *
Terrain o = (Terrain)obj; // will not work
Terrain o = new Terrain(obj); // Use this constructor instead
* @param obj an object returned from ArcGIS Engine or Server
IOException
- if there are interop problems
Terrain theTerrain = (Terrain) obj;
Method Detail |
---|
public boolean equals(Object o)
equals
in class Object
public int hashCode()
hashCode
in class Object
public void addITerrainEditEventsListener(ITerrainEditEvents theListener) throws IOException
theListener
- An object that implements the com.esri.arcgis.geodatabaseextensions.ITerrainEditEvents interface.
IOException
- If there are communications problems.public void removeITerrainEditEventsListener(ITerrainEditEvents theListener) throws IOException
theListener
- An object that implements the com.esri.arcgis.geodatabaseextensions.ITerrainEditEvents interface.
IOException
- If there are communications problems.public String getName() throws IOException, AutomationException
getName
in interface IDataset
getName
in interface ITerrain
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IName getFullName() throws IOException, AutomationException
getFullName
in interface IDataset
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public String getBrowseName() throws IOException, AutomationException
getBrowseName
in interface IDataset
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setBrowseName(String name) throws IOException, AutomationException
setBrowseName
in interface IDataset
name
- The name (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getType() throws IOException, AutomationException
// Assume we have a reference to an IfeatureClass (pFeatureClass) IDataset pDataset = null;
pDataset = new IDatasetProxy(pFeatureClass);
System.out.println(pDataset.getName() + " " + pDataset.getType());
if(pFeatureClass != null){
pDataset = pFeatureClass.getFeatureDataset();
System.out.println(pDataset.getName() + " " + pDataset.getType());
}
pDataset = new IDatasetProxy(pDataset.getWorkspace());
System.out.println(pDataset.getName() + " " +
pDataset.getType());
getType
in interface IDataset
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public String getCategory() throws IOException, AutomationException
IDataset::Category returns a description of the category of the dataset. The description returned from the Category property is the same value that is displayed in the Type column within the Contents tab in ArcCatalog. The value will contain a description of the dataset such as "Topology" prefixed with a description of the type of workspace containing the dataset such as "File Geodatabase".
The description returned from IDataset::Category may change between releases of ArcGIS. In addition to this, returned strings are localized, meaning that code relying on a specific string being provided may fail when deployed with a different version of ArcGIS than it was developed with, or when deployed to a client using a different language than it was developed with.
getCategory
in interface IDataset
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IEnumDataset getSubsets() throws IOException, AutomationException
The Subsets property returns other Dataset objects contained in this dataset.
IDataset::Subsets is not supported for Graph objects such as a Geometric Network. To return the feature classes contained in a Geometric Network, use the IFeatureClassContainer interface.
getSubsets
in interface IDataset
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IWorkspace getWorkspace() throws IOException, AutomationException
The Workspace property returns the containing workspace for this dataset.
getWorkspace
in interface IDataset
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IPropertySet getPropertySet() throws IOException, AutomationException
The PropertySet property is used to return any additional intrinsic properties (but not metadata properties) that may apply to the dataset. One use of this property is to distinguish between the types of File Geodatabase datafile formats. If called on a Feature Class or Table in a File Geodatabase the Datafile Format property can either be esriFGDBStandardDatafile or esriFGDBCompressedDatafile.
Most datasets do not implement this property and will either raise an error or return a null value if it's called. There are a handful of exceptions that will return property sets; these include the datasets from file geodatabases (as mentioned above) and coverages.
Examples of intrinsic properties for which explicit methods exist include the SpatialReference and the Extent methods available on the IGeoDataset interface. In most cases this PropertySet will be empty.
IDataset::PropertySet is not supported for Graph objects such as a Geometric Network.
getPropertySet
in interface IDataset
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean canCopy() throws IOException, AutomationException
The CanCopy, CanDelete, and CanRename properties are meant to be used in conjunction with the Copy, Delete, and Rename methods and signify whether a dataset is supported by these methods. For example, you may not delete a network feature class nor can you use the Copy method on a Geodatabase feature class. To copy Geodatabase datasets, including feature classes, geometric networks, topologies, etc., use the IGeoDBDataTransfer interface.
The CanCopy method is supported by:
canCopy
in interface IDataset
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IDataset copy(String copyName, IWorkspace copyWorkspace) throws IOException, AutomationException
IDataset::Copy should only be used with datasets from file-based data sources, such as shapefiles and coverages.
copy
in interface IDataset
copyName
- The copyName (in)copyWorkspace
- A reference to a com.esri.arcgis.geodatabase.IWorkspace (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean canDelete() throws IOException, AutomationException
The CanCopy, CanDelete, and CanRename properties are meant to be used in conjunction with the Copy, Delete, and Rename methods and signify whether a dataset is supported by these methods. For example, you may not delete a network feature class nor can you use the Copy method on a Geodatabase feature class. To copy Geodatabase datasets, including feature classes, geometric networks, topologies, etc., use the IGeoDBDataTransfer interface.
canDelete
in interface IDataset
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void delete() throws IOException, AutomationException
Certain feature classes, such as network and topology feature classes, cannot be deleted until their containing objects are deleted.
delete
in interface IDataset
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean canRename() throws IOException, AutomationException
The CanCopy, CanDelete, and CanRename properties are meant to be used in conjunction with the Copy, Delete, and Rename methods and signify whether a dataset is supported by these methods. For example, you may not delete or rename a network feature class nor can you use the Copy method on a Geodatabase feature class. To copy Geodatabase datasets, including feature classes, geometric networks, topologies, etc., use the IGeoDBDataTransfer interface.
canRename
in interface IDataset
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void rename(String name) throws IOException, AutomationException
IDataset::Rename does not support the renaming of Graph objects such as a Geometric Network. In addition, certain feature classes, such as network feature classes, cannot be renamed.
rename
in interface IDataset
name
- The name (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ISpatialReference getSpatialReference() throws IOException, AutomationException
This property is read only. For layers, when the first layer is added to ArcMap, its spatial reference is read by this property, and the map is set to this spatial reference.
Instances of the esriCarto.GroupLayer class will return null for this property, as a group layer can contain multiple datasets with different spatial references.
Modifications to a spatial reference returned by this property will not be persisted. To modify the spatial reference of a dataset, the IGeoDatasetSchemaEdit and IGeoDatasetSchemaEdit2 interfaces should be used.
getSpatialReference
in interface IGeoDataset
getSpatialReference
in interface ITerrain
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IEnvelope getExtent() throws IOException, AutomationException
The IGeoDataset::Extent property returns an envelope representing the maximum extent of data which has been stored in the dataset.
Consider the following scenario. A new feature class has features added to it. The IGeoDataset::Extent is then requested and an envelope is returned. The extents of the envelope returned are represented by the red box in the image below.
If a portion of the features were then deleted and the extent is again requested an envelope with the exact same extents as during the first request would be returned (see image below). This is because the deletion of features does not shrink the extent. However all additions of features outside the red box would increase the envelope returned to encompass the newly added features.
If you would like to update the IGeoDataset::Extent property to reflect the current features in your dataset please see IFeatureClassManage::UpdateExtent (also see IFeatureClassLoad). In the image below the extent has been updated and a new envelope is being returned.
ESRI's GroupLayer implements this property differently from most other layer coclasses. When you instantiate a new GroupLayer, this property will return a valid envelope with zero height and width. With most other newly instantiated layers (for example FeatureLayer, RasterLayer, TinLayer), this property initally returns Nothing.
getExtent
in interface IGeoDataset
getExtent
in interface ITerrain
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getID() throws IOException, AutomationException
ID is the internal database identifier for the terrain.
getID
in interface IDatasetComponent2
getID
in interface ITerrain
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public double getSize() throws IOException, AutomationException
Size is the total number of 3D mass point and breakline vertices in the terrain. The count does not consider the effect of clip or erase features and it does not include vertices of z-less features.
getSize
in interface ITerrain
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isValid() throws IOException, AutomationException
Indicates whether the terrain schema has been modified since the last Build. When IsValid is FALSE the terrain must be built in order to be used.
Schema edits on terrains include the addition or removal of feature classes and pyramid levels.
isValid
in interface ITerrain
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isDirty() throws IOException, AutomationException
Indicates whether edits have taken place on feature classes that participate in the terrain. When IsDirty is TRUE a Build is needed to reconstruct the pyramid layers for the terrain tiles in which the edits have occurred.
isDirty
in interface ITerrain
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IFeatureDataset getFeatureDataset() throws IOException, AutomationException
getFeatureDataset
in interface ITerrain
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getDataSourceCount() throws IOException, AutomationException
The DataSourceCount represents the number of feature classes that participate in the terrain. This includes regular and embedded feature classes.
getDataSourceCount
in interface ITerrain
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ITerrainDataSource getDataSource(int index) throws IOException, AutomationException
getDataSource
in interface ITerrain
index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getPyramidLevelCount() throws IOException, AutomationException
The PyramidLevelCount is the number of pyramid levels defined for the terrain excluding the implicit full resolution level and also the coarsest level, the terrain overview.
getPyramidLevelCount
in interface ITerrain
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ITerrainPyramidLevel getPyramidLevel(int index) throws IOException, AutomationException
getPyramidLevel
in interface ITerrain
index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public double getTileSize() throws IOException, AutomationException
The TileSize is the horizontal distance of the side of a terrain tile. Tiles are square. Terrain uses a tile system to divide measurement data into manageable chunks for iterative processing. The size should be set relative to the average point spacing of the data used to build the terrain such that each tile holds between one and two hundred thousand mass points and breakline vertices.
See also ITerrain.QueryTileInfo.
getTileSize
in interface ITerrain
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getPyramidType() throws IOException, AutomationException
At this time the only type of terrain pyramid is one based on z-tolerance. On a tile by tile basis, subsets of measurements are selected to contribute to pyramid levels. The surface for each level can only deviate from the next higher higher level of detail by an amount up to the z-tolerance.
getPyramidType
in interface ITerrain
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getMaxOverviewTerrainPoints() throws IOException, AutomationException
The overview is the coarsest representation of a terrain. It's like a vector based thumbnail. The primary intention of the overview is to enable a terrain to draw quickly when zoomed to its full extent, when detail and accuracy are not needed. The default for MaxOverviewTerrainPoints is 50,000.
getMaxOverviewTerrainPoints
in interface ITerrain
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getMaxPointsPerShape() throws IOException, AutomationException
Terrain pyramids are comprised of mass points and breakline vertices. These are stored as a collection of multipoints. MaxPointsPerShape controls how large an individual multipoint can get. The default is 5000.
getMaxPointsPerShape
in interface ITerrain
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void queryTileInfo(int[] pRowBegin, int[] pRowEnd, int[] pColBegin, int[] pColEnd, double[] pXMin, double[] pYMin, double[] pTileSize, int[] pRowCountDomain, int[] pColCountDomain) throws IOException, AutomationException
The feature dataset containing the terrain is logically tiled, in its entirety, to form the tile scheme with its origin in the southwest corner. Tiles are square. Row and column numbering starts at base 1. The data area of the terrain may not fill the extent of the feature dataset so it's possible that only a subset of rows and columns are involved. This method provides the info about those tiles overlapping the terrain extent.
The returned row and column numbers represent the rectangular subset of tiles that intersect the terrain extent. Row and column numbering start at base 1 with the first row and column being in the southwest corner of the feature dataset.
The xmin and ymin are the real world coordinates for the lower left corner of the origin tile of the terrain.
The tilesize is the horizontal length of one of the square tiles and is equal to that specified when the terrain was created.
queryTileInfo
in interface ITerrain
pRowBegin
- The pRowBegin (out: use single element array)pRowEnd
- The pRowEnd (out: use single element array)pColBegin
- The pColBegin (out: use single element array)pColEnd
- The pColEnd (out: use single element array)pXMin
- The pXMin (out: use single element array)pYMin
- The pYMin (out: use single element array)pTileSize
- The pTileSize (out: use single element array)pRowCountDomain
- The pRowCountDomain (out: use single element array)pColCountDomain
- The pColCountDomain (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IEnumEnvelope getDirtyTiles() throws IOException, AutomationException
Each envelope returned by the enumerator represents the map based extent of a dirty tile.
getDirtyTiles
in interface ITerrain
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public double getPointCount(IEnvelope pAOI, double resolution) throws IOException, AutomationException
GetPointCount returns the number of points and breakline vertices, at a particular pyramid level, for those terrain tiles intersected by a given envelope. This yields a relatively quick estimate, albeit over-estimated, of the size of the terrain for that area and vertical tolerance. Only 3-D measurements are counted. Z-less line and polygon vertices are excluded.
GetPointCount will return an error when called on a terrain that is in need of being built. That is, when ITerrain.IsValid returns FALSE. Ensure the terrain IsValid before calling this member.
getPointCount
in interface ITerrain
pAOI
- A reference to a com.esri.arcgis.geometry.IEnvelope (in)resolution
- The resolution (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IDynamicSurface createDynamicSurface() throws IOException, AutomationException
CreateDynamicSurface will return an error when called on a terrain that is in need of being built. That is, when ITerrain.IsValid returns FALSE. Ensure the terrain IsValid before calling this member.
createDynamicSurface
in interface ITerrain
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void extractFromEmbeddedDataSource(int index, IFeatureClass pFeatureClass, IEnvelope pAOI, double resolution, ITrackCancel pTrackCancel) throws IOException, AutomationException
Copies points from an embedded source into the target feature class.
index references the data source to use. This should be in the range of 0 to n-1 where n represents the number of data sources in the terrain, but it must also be a source which is embedded.
pFeatureClass is the target feature class, where the points will be written.
pAOI is the area of interest envelope. Points within the AOI will be extracted. This can be set to a NULL pointer ('Nothing' in VB) if the entire extent of the terrain is desired.
resolution indicates which pyramid level should be used for extraction. A value of 0.0 will extract the full resolution data. Any other value should correspond to one of the values used to define the terrain's pyramid. If you don't provide an exact match the software will round down to the next closest level.
pTrackCancel is a reference to a Cancel Tracker object that can be used to monitor progress and/or cancel the process. This can be set to a NULL pointer ('Nothing' in VB) if desired.
Notes
extractFromEmbeddedDataSource
in interface ITerrain
index
- The index (in)pFeatureClass
- A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)pAOI
- 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 String getEmbeddedDataSourceShapeFieldName() throws IOException, AutomationException
Returns the name of the shape field for any and all embedded feature classes in the terrain. They all use the same name.
getEmbeddedDataSourceShapeFieldName
in interface ITerrain2
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void searchFromEmbeddedDataSource(int index, IEnvelope pAOI, double resolution, IStringArray pSubFields, IFeatureCursor[] ppCursor, ILongArray[] ppFieldIndices) throws IOException, AutomationException
Index is used to indicate which feature class to search and retrieve records from. The index must reference and embedded multipoint feature class.
pAOI is an envelope representing the area of interest. This can be NULL, in which case the full extent of the terrain is used.
resolution is the z-tolerance or windowsize of the pyramid level to query records from. Ideally, the value provided should exactly match an existing pyramid level. If not, the next highest resolution level to the value specified will be used.
pSubFields is an array of field names for desired attributes. Use ITerrain2.GetEmbeddedDataSourceShapeFieldName for the shape field if you're interested in retrieving the geometry.
ppCursor is the output feature cursor.
ppFieldIndices is a LongArray containing the cursor field index values for the requested attributes, listed in the same order as provided in pSubFields.
searchFromEmbeddedDataSource
in interface ITerrain2
index
- The index (in)pAOI
- A reference to a com.esri.arcgis.geometry.IEnvelope (in)resolution
- The resolution (in)pSubFields
- A reference to a com.esri.arcgis.system.IStringArray (in)ppCursor
- A reference to a com.esri.arcgis.geodatabase.IFeatureCursor (out: use single element array)ppFieldIndices
- A reference to a com.esri.arcgis.system.ILongArray (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void addDataSource(ITerrainDataSource pDataSource) throws IOException, AutomationException
Adding a TerrainDataSource will invalidate the terrain and require a build. See ITerrainEdit.Build.
addDataSource
in interface ITerrainEdit
pDataSource
- A reference to a com.esri.arcgis.geodatabaseextensions.ITerrainDataSource (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void removeDataSource(int index) throws IOException, AutomationException
Removing a data source will invalidate the terrain and require a build. See ITerrainEdit.Build.
removeDataSource
in interface ITerrainEdit
index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void addPyramidLevel(ITerrainPyramidLevel pPyramidLevel) throws IOException, AutomationException
A terrain has a pyramid. The pyramid is comprised of one or more pyramid levels. The definition for each level is added by this function. You must have at least one pyramid level defined for a terrain before it can be built. Instantiate a pyramid level definition using the TerrainPyramidLevelZTolerance coclass.
addPyramidLevel
in interface ITerrainEdit
pPyramidLevel
- A reference to a com.esri.arcgis.geodatabaseextensions.ITerrainPyramidLevel (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void removePyramidLevel(int index) throws IOException, AutomationException
removePyramidLevel
in interface ITerrainEdit
index
- The index (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void changeMaxScale(int index, int newScale) throws IOException, AutomationException
A reference scale is associated with each terrain pyramid level. This is the maximum display scale at which a pyramid level is used when displaying a terrain in a map. At a larger display scale (i.e. more zoomed in) a more accurate pyramid is used.
The input index represents the pyramid level desired, from finer to coarser resolution, excluding the full resolution level. So, index 0 refers to the pyramid level with the smallest ZTolerance that is greater than 0.0. The valid index range is 0 to ITerrain.ZToleranceCount-1.
The value passed for newScale is the denominator of the scale. For example, to define a pyramid used for displays at scales up to 1:24000 pass a value of 24000.
Modifying the maximum scale for a pyramid does not necessitate a rebuild of the terrain.
changeMaxScale
in interface ITerrainEdit
index
- The index (in)newScale
- The newScale (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void changeResolutionBounds(int index, double lowerBound, double upperBound) throws IOException, AutomationException
changeResolutionBounds
in interface ITerrainEdit
index
- The index (in)lowerBound
- The lowerBound (in)upperBound
- The upperBound (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void deleteDataSourceData(int index, IEnvelope pAOI, ITrackCancel pTrackCancel) throws IOException, AutomationException
The input index is the terrain data source index of the embedded feature class. Valid values range from 0 to ITerrain.DataSourceCount-1.
The pAOI argument is the area of interest envelope that's used to indicate where to remove measurements.
pTrackCancel is a pointer to a CancelTracker object.
Notes
deleteDataSourceData
in interface ITerrainEdit
index
- The index (in)pAOI
- A reference to a com.esri.arcgis.geometry.IEnvelope (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 addDataSourceData(int index, IEnvelope pAOI, IFeatureClass pInFC, ITrackCancel pTrackCancel) throws IOException, AutomationException
The input index is the terrain data source index of the target embedded feature class. Valid values range from 0 to ITerrain.DataSourceCount-1.
The pAOI argument is the area of interest envelope that's used as a filter when pulling measurements from the input feature class. It can be set to a NULL pointer (i.e. 'Nothing' in VB) in which case the extent of the input feature class is used.
pInFC is a pointer to the input feature class from which measurements will be added. The feature class shape type must be point or multipoint.
pTrackCancel is a pointer to a CancelTracker object.
Notes
addDataSourceData
in interface ITerrainEdit
index
- The index (in)pAOI
- A reference to a com.esri.arcgis.geometry.IEnvelope (in)pInFC
- 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 replaceDataSourceData(int index, IEnvelope pAOI, IFeatureClass pInFC, ITrackCancel pTrackCancel) throws IOException, AutomationException
The input index is the terrain data source index of the embedded feature class. Valid values range from 0 to ITerrain.DataSourceCount-1.
The pAOI argument is the area of interest envelope that's used to indicate where measurements are to be replaced.
pInFC is a pointer to the input feature class from which measurements will be taken. The feature class shape type must be point or multipoint.
pTrackCancel is a pointer to a CancelTracker object.
Notes
replaceDataSourceData
in interface ITerrainEdit
index
- The index (in)pAOI
- A reference to a com.esri.arcgis.geometry.IEnvelope (in)pInFC
- 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 build(ITrackCancel pTrackCancel) throws IOException, AutomationException
Build (re)constructs the terrain as necessary. Depending on what types of edits have taken place different levels of build may be required. Some forms require a full rebuild and others just partial.
Add/Remove ZTolerance - full
Add/Remove TerrainDataSource - partial for area covered by data source measurements
ChangeMaxZScale - none
Edit of data source feature class geometry - partial for area covered by feature edits
build
in interface ITerrainEdit
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 updateExtent(ITrackCancel pTrackCancel) throws IOException, AutomationException
UpdateExtent is used to recalculate the data extent for a windowsize based terrain dataset when the data area has been reduced through editing. It's not needed if the terrain is z-tolerance based. Nor is it needed if the data extent has increased. It's only needed for windowsize terrains with reduced data extents. It needs to be called after the terrain is built (i.e., ITerrainEdit.Build, ITerrain.IsDirty = FALSE.).
UpdateExtent scans through all the terrain data to determine the new extent. It can therefore be expensive in terms of I/O if the terrain is large.
updateExtent
in interface ITerrainEdit2
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 changeUsageInOverview(int index, boolean bApply) throws IOException, AutomationException
Used to add or remove a feature class from participation in the terrain's overview.
index indicates which feature class to modify. The index must refer to a polyline or polygon based feature class as these are the types of features which have an option of being in the overview. Points and multipoints always participate in the overview.
Set bApply to TRUE to have the feature class participate in the overview and FALSE if not.
changeUsageInOverview
in interface ITerrainEdit3
index
- The index (in)bApply
- The bApply (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void deleteDataSourceDataByFC(int index, String pointCountFieldName, IFeatureClass pFC, boolean bSparseData, ITrackCancel pTrackCancel) throws IOException, AutomationException
deleteDataSourceDataByFC
in interface ITerrainEdit3
index
- The index (in)pointCountFieldName
- The pointCountFieldName (in)pFC
- A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)bSparseData
- The bSparseData (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 deleteDataSourceData2(int index, String pointCountFieldName, IGeometry pAOI, ITrackCancel pTrackCancel) throws IOException, AutomationException
Used to delete points from a terrain dataset.
index is used to indicate which data source to delete points from. The data source must be a multipoint or point based feature class. It can be embedded or referenced.
pAOI is an envelope or polygon used to define an area of interest. Points inside pAOI will be deleted.
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 terrain will need to be rebuilt after calling this method.
A call should be made to ITerrainEdit2.UpdateExtent if extent in XY or Z has shrunk.
deleteDataSourceData2
in interface ITerrainEdit3
index
- The index (in)pointCountFieldName
- The pointCountFieldName (in)pAOI
- A reference to a com.esri.arcgis.geometry.IGeometry (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 addDataSourceData2(int index, String pointCountFieldName, IGeometry pAOI, IFeatureClass pInFC, ITrackCancel pTrackCancel) throws IOException, AutomationException
Used to append points to a feature class that participates in the terrain.
index indicates which data source will be appended to. The data source must be a multipoint or point based feature class. It can be embedded or referenced.
pAOI is an envelope or polygon used to control the which points from pInFC get appended. pAOI can be NULL in which case all data from pInFC will be appended.
pInFC is the source of data that will be appended. It must be a multipoint or point based feature class.
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:
Attributes from the input are conditionally appended to the target feature class. If there's a match in field names between the input and output the values will be brought over.
The terrain will need to be rebuilt after calling this method.
addDataSourceData2
in interface ITerrainEdit3
index
- The index (in)pointCountFieldName
- The pointCountFieldName (in)pAOI
- A reference to a com.esri.arcgis.geometry.IGeometry (in)pInFC
- 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 replaceDataSourceData2(int index, String pointCountFieldName, IGeometry pAOI, IFeatureClass pInFC, ITrackCancel pTrackCancel) throws IOException, AutomationException
Used to replace points from one feature class that participates in the terrain with points from another feature class.
index is used to indicate which data source will be modifed. The data source must be a multipoint or point based feature class. It can be embedded or referenced.
pAOI is an envelope or polygon used to define the area of interest. First, points inside pAOI will be removed from the terrain data source. Then, those points or multipoint vertices from pInFC that are inside pAOI get appended. pAOI can be NULL in which case all the points from the terrain data source will be deleted before appending all the points from pInFC.
pInFC is the source of data that will be appended. It must be a multipoint or point based feature class.
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:
Attributes from the input are conditionally appended to the target feature class. If there's a match in field names between the input and output the values will be brought over.
The terrain will need to be rebuilt after calling this method.
May require call to ITerrainEdit2.UpdateExtent if extent in XY or Z has shrunk.
replaceDataSourceData2
in interface ITerrainEdit3
index
- The index (in)pointCountFieldName
- The pointCountFieldName (in)pAOI
- A reference to a com.esri.arcgis.geometry.IGeometry (in)pInFC
- 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 calculateFieldStatistics(int index, IStringArray pFieldNames, ITrackCancel pTrackCancel) throws IOException, AutomationException
Calculates basic statistical information for attributes stored in embedded feature classes. The statistics are saved with the terrain and can be retrieved with ITerrainEmbeddedDataSource2.GetFieldStatistics or ITerrainEmbeddedDataSource2.GetReservedFieldStatistics.
index indicates which feature class to calculate statistics for. The index must refer to an embedded feature class.
pFieldNames indicates the fields for which statistics will be calculated. If you pass a NULL for the StrArray statistics will be calculated for all fields.
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:
This method should also be used to re-calculate existing attribute statistics when needed (e.g., due to edits). Find out if the statistics for a field are outdated with ITerrainFieldStatistics.NeedsUpdate.
calculateFieldStatistics
in interface ITerrainEdit3
index
- The index (in)pFieldNames
- A reference to a com.esri.arcgis.system.IStringArray (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 changeSchemaLock(int schemaLock) throws IOException, AutomationException
changeSchemaLock
in interface ISchemaLock
schemaLock
- A com.esri.arcgis.geodatabase.esriSchemaLock constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void getCurrentSchemaLocks(IEnumSchemaLockInfo[] schemaLockInfo) throws IOException, AutomationException
The ISchemaLockInfo interface is used in concert with ISchemaLock to provide information about a schema lock, for example, whether it is shared or exclusive and for ArcSDE geodatabases, the name of the user who has the lock. Note that there will always be at least one schema lock on the dataset. Also note that by checking the schema locks on a dataset a shared schema lock is applied to the data.
getCurrentSchemaLocks
in interface ISchemaLock
schemaLockInfo
- A reference to a com.esri.arcgis.geodatabase.IEnumSchemaLockInfo (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void analyze(int tableComponents) throws IOException, AutomationException
When applied to a feature dataset, Analyze updates the statistics for all of the tables.
analyze
in interface IDatasetAnalyze
tableComponents
- The tableComponents (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getAllowableComponents() throws IOException, AutomationException
The AllowableComponents property indicates which parts of the table or feature class can be analyzed. The returned value is based on the esriTableComponents enumeration. Members from this enumeration can be bitwise or’d together.
getAllowableComponents
in interface IDatasetAnalyze
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IDEDataset getDataElement() throws IOException, AutomationException
The DataElement method is used to access the data element for this dataset component.
getDataElement
in interface IDatasetComponent
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IDataset getParent() throws IOException, AutomationException
Returns the parent of the dataset component. For example, for geodatabase network datasets this will return the containing feature dataset.
getParent
in interface IDatasetComponent
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IPropertySet getMetadata() throws IOException, AutomationException
The variable to hold the data must be of IPropertySet data type.
The metadata property is frequently used to save, or update, changes to metadata documents that have taken place through methods available on the IPropertySet, IXmlPropertySet, and/or IXmlPropertySet2 interfaces.
getMetadata
in interface IMetadata
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setMetadata(IPropertySet ppPropertySet) throws IOException, AutomationException
setMetadata
in interface IMetadata
ppPropertySet
- A reference to a com.esri.arcgis.system.IPropertySet (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void synchronize(int action, int interval) throws IOException, AutomationException
The Synchronize method is used to extract metadata properties from an object and write those properties to the metadata .xml. Depending on the value of the esriMetaSyncAction, the Synchronize method may generate a new set of metadata if it doesn't already exist.
The following actions will result in synchronization given each of the listed conditions:
Action | Metadata status | Esri/Sync element | Interval parameter |
---|---|---|---|
esriMSAAccessed | Doesn't matter | Must not be FALSE | Must be less than actual interval |
esriMSAAlways | Doesn't matter | Doesn't matter | Doesn't matter |
esriMSACreated | Must not exist | Must not be FALSE | Must be less than actual interval |
esriMSANotCreated | Must exist | Must not be FALSE | Must be less than actual interval |
esriMSAOverwrite | Doesn't matter | Doesn't matter | Doesn't matter |
The difference between esriMSAAlways and esriMSAOverwrite lies in which elements are synchronized. esriMSAAlways will honor the removal or value change of an element's Sync attribute (to disable synchronization), whereas using esriMSAOverwrite is equivalent to setting the IXmlPropertySet2.OverwriteSyncAttribute to true for the metadata's property set, meaning that even elements without a Sync attribute of TRUE will be synchronized.
synchronize
in interface IMetadata
action
- A com.esri.arcgis.geodatabase.esriMetadataSyncAction constant (in)interval
- The interval (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isCanEditMetadata() throws IOException, AutomationException
This property is available to those objects that support metadata.
isCanEditMetadata
in interface IMetadataEdit
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public INativeType getNativeType() throws IOException, AutomationException
getNativeType
in interface INativeTypeInfo
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 |