|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.esri.arcgis.geodatabase.GeometricNetwork
public class GeometricNetwork
ESRI Geometric Network object.
Constructor Summary | |
---|---|
GeometricNetwork(Object obj)
Construct a GeometricNetwork using a reference to such an object returned from ArcGIS Engine or Server. |
Method Summary | |
---|---|
void |
add(IFeature newFeature)
Adds the preexisting Feature to the graph. |
void |
addFeatureClass(IFeatureClass featureClass,
String enabledFieldName,
int role,
String ancillaryRoleFieldName)
Add the FeatureClass to this graph. |
void |
addJunctionWithSubsumption(ISimpleJunctionFeature junction,
int junctionEID,
ISimpleJunctionFeature subsumedJunction)
Add a new junction feature to the network by replacing existing junction. |
void |
addRule(IConnectivityRule rule)
Adds the constraint to the set of connectivity rules. |
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 |
changeSchemaLock(int schemaLock)
Changes a schema lock. |
void |
checkAndRepairConnectivity(boolean checkOnly,
String logFilePath,
ISet[] errorSelectionSets,
boolean[] hasInternalInconsistencies,
IRepairConnectivityProgress repairConnectivityProgress)
Checks and optionally repairs connectivity. |
IDataset |
copy(String copyName,
IWorkspace copyWorkspace)
Copies this dataset to a new dataset with the specified name. |
void |
createErrorTable(String name,
ITable[] errorTable)
Creates a non-versioned table that can be used to persist error information. |
ISimpleJunctionFeature |
createOrphanFeature(IPoint location,
int[] orphanEID)
Create an orphan JunctionFeature. |
ISet |
createSelectionSetFromErrorTable()
Returns a set of selection sets of the features in the geometric network Error Table. |
void |
delete()
Deletes this dataset. |
void |
deleteNetworkElements(ISet selectionSets)
Deletes the network elements associated with the specified network features. |
void |
deleteRule(IConnectivityRule rule)
Removes the rule from the set of rules. |
void |
deleteSet(ISet featuresToDelete)
Removes the set of Feature from the graph. |
void |
detectNetworkErrors(int errorType,
IEnvelope areaOfInterest,
ISet selectionSets,
ISet[] problemSelectionSets)
The features in the geometric network with connectivity problems. |
boolean |
equals(Object o)
Compare this object with another |
IFeatureClass |
esri_getClass(int classIndex)
The FeatureClass associated with the specified index value. |
void |
establishFlowDirection()
Establish the flow direction in the LogicalNetwork. |
String |
getBrowseName()
The browse name of the dataset. |
String |
getCategory()
The category of the dataset. |
IFeatureClass |
getClassByID(int iD)
The FeatureClass with the specified ID. |
IFeatureClass |
getClassByName(String name)
The FeatureClass with the specified name. |
int |
getClassCount()
The number of FeatureClasses in this container. |
IEnumFeatureClass |
getClasses()
An enumerator over the FeatureClasses. |
IEnumFeatureClass |
getClassesByNetworkAncillaryRole(int role)
The FeatureClasses with the specified ancillary role. |
IEnumFeatureClass |
getClassesByType(int type)
The FeatureClasses containing Features of the specified type. |
void |
getCurrentSchemaLocks(IEnumSchemaLockInfo[] schemaLockInfo)
The list of current locks. |
IDisplayFeedback |
getDisplayFeedback(IFeature feature,
ISet features,
IPoint point)
The DisplayFeedback. |
int |
getEdgeElement(IPoint location)
The EdgeElement EID at the specified location. |
ITable |
getErrorTable()
The error table currently associated with the geometric network. |
IEnvelope |
getExtent()
The extent of the GeoDataset. |
IFeatureDataset |
getFeatureDataset()
The FeatureDataset associated with the graph. |
IName |
getFullName()
The associated name object. |
IGeometry |
getGeometryForEdgeEID(int edgeEID)
The geometry of the EdgeElement. |
IGeometry |
getGeometryForJunctionEID(int junctionEID)
The geometry that corresponds to the JunctionElement (a point). |
IInvalidArea |
getInvalidArea()
The area to be drawn. |
int |
getJunctionElement(IPoint location)
The JunctionElement EID at the specified location. |
IPropertySet |
getMetadata()
The PropertySet containing metadata. |
String |
getName()
The name of the Dataset. |
INativeType |
getNativeType()
The native type. |
INetwork |
getNetwork()
The associated logical network. |
INetworkFeature |
getNetworkFeature(INetElementDescription networkElement)
The NetworkFeature that corresponds to the NetworkElement. |
int |
getNetworkType()
The type of associated logical network. |
IFeatureClass |
getOrphanJunctionFeatureClass()
The FeatureClass containing the OrphanJunctionFeatures. |
IPropertySet |
getPropertySet()
The set of properties for the dataset. |
IEnumRule |
getRules()
All the connectivity rules associated with the network. |
IEnumRule |
getRulesByClassAndSubtype(int classID,
int subtypeCode)
The connectivity rules associated with the class and subtype. |
ISpatialReference |
getSpatialReference()
The spatial reference of the GeoDataset. |
IEnumDataset |
getSubsets()
Datasets contained within this dataset. |
int |
getType()
The type of the Dataset. |
IWorkspace |
getWorkspace()
The workspace containing this dataset. |
int |
hashCode()
the hashcode for this object |
void |
init(IFeatureDataset dataset,
int graphID,
String graphName,
boolean buildNormalizedTables,
boolean createGraph)
Initializes the graph. |
void |
interfaceSupportsErrorInfo(GUID riid)
interfaceSupportsErrorInfo |
boolean |
isBeingEdited()
True if the dataset is being edited. |
boolean |
isCanEditMetadata()
Indicates if metadata can be edited. |
boolean |
isReduceNetworkConflicts()
Indicates if the reconcile plan for the network reduces network conflicts. |
boolean |
isValidFlowDirection()
Indicates whether the current flow directions are valid. |
boolean |
isVertexBasedStretching()
The stretching model to nearest vertex (true) or junction (false) based stretching. |
IEnumFeature |
merge(IEnumFeature mergingFeatures)
Merges the Features together, returning the newly created Feature. |
void |
rebuildConnectivity(IEnvelope incrementalRebuildArea)
Incrementally rebuilds connectivity for features within and intersecting the specified envelope. |
void |
rebuildConnectivity2(IEnvelope incrementalRebuildArea)
Incrementally rebuilds connectivity for features within and intersecting the specified envelope. |
void |
rename(String name)
Renames this Dataset. |
IEnumFeature |
searchForNetworkFeature(IPoint location,
int type)
The NetworkFeatures found at the point. |
void |
setBrowseName(String name)
The browse name of the dataset. |
void |
setErrorTable(ITable errorTable)
The error table currently associated with the geometric network. |
void |
setInvalidAreaByRef(IInvalidArea invalidArea)
The area to be drawn. |
void |
setMetadata(IPropertySet ppPropertySet)
The PropertySet containing metadata. |
void |
setReduceNetworkConflicts(boolean reduceNetworkConflicts)
Indicates if the reconcile plan for the network reduces network conflicts. |
void |
setVertexBasedStretching(boolean vertexBased)
The stretching model to nearest vertex (true) or junction (false) based stretching. |
void |
spliceSimpleJunction(ISimpleJunctionFeature junction,
int junctionEID,
IGeometry geometry,
boolean forceConnectivity)
Create network connectivity between the simple junction and any intersecting network feature. |
ISet |
split(IEdgeFeature splittingEdge,
IGeometry point)
Split the feature. |
void |
synchronize(int action,
int interval)
Updates metadata with the current properties; may create metadata if it doesn't already exist. |
void |
transformSet(ISet features,
int type,
IAffineTransformation2D tranformation)
Repositions all specified NetworkFeatures and any topologically connected NetworkFeatures. |
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 GeometricNetwork(Object obj) throws IOException
obj
to GeometricNetwork
. *
GeometricNetwork o = (GeometricNetwork)obj; // will not work
GeometricNetwork o = new GeometricNetwork(obj); // Use this constructor instead
* @param obj an object returned from ArcGIS Engine or Server
IOException
- if there are interop problems
GeometricNetwork theGeometricNetwork = (GeometricNetwork) obj;
Method Detail |
---|
public boolean equals(Object o)
equals
in class Object
public int hashCode()
hashCode
in class Object
public String getName() throws IOException, AutomationException
getName
in interface IDataset
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 boolean isBeingEdited() throws IOException, AutomationException
Once an edit session has been started on a workspace, the IsBeingEdited method on the IDatasetEdit interface can be used to determine if a particular dataset is participating in the edit session.
The reasons why a dataset may not participate include the connected user has no privileges or permission to edit the dataset, the connected user is not licensed to edit this type of dataset, or the dataset is not versioned but a versioned edit session has been started (or vice versa).
isBeingEdited
in interface IDatasetEdit
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
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
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.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 IFeatureClass esri_getClass(int classIndex) throws IOException, AutomationException
esri_getClass
in interface IFeatureClassContainer
classIndex
- The classIndex (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IFeatureClass getClassByID(int iD) throws IOException, AutomationException
getClassByID
in interface IFeatureClassContainer
iD
- The iD (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IFeatureClass getClassByName(String name) throws IOException, AutomationException
getClassByName
in interface IFeatureClassContainer
name
- The name (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getClassCount() throws IOException, AutomationException
getClassCount
in interface IFeatureClassContainer
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IEnumFeatureClass getClasses() throws IOException, AutomationException
There is no guarentee on the order that the feature classes will be returned.
getClasses
in interface IFeatureClassContainer
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IEnumFeatureClass getClassesByNetworkAncillaryRole(int role) throws IOException, AutomationException
getClassesByNetworkAncillaryRole
in interface IGeometricNetwork
role
- A com.esri.arcgis.geodatabase.esriNetworkClassAncillaryRole constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void establishFlowDirection() throws IOException, AutomationException
establishFlowDirection
in interface IGeometricNetwork
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IWorkspaceEdit
,
ISpatialCacheManager
,
IWorkspaceEditEvents
,
Editor
,
IFeatureClass.createFeature()
public boolean isValidFlowDirection() throws IOException, AutomationException
ValidFlowDirection specifies whether the geometric network's flow direction has been defined. Use EstablishFlowDirection on this same interface to set the flow direction.
In this release, ValidFlowDirection is not implemented -- for now, this property always returns False.
isValidFlowDirection
in interface IGeometricNetwork
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IEnumFeatureClass getClassesByType(int type) throws IOException, AutomationException
getClassesByType
in interface IGeometricNetwork
type
- A com.esri.arcgis.geodatabase.esriFeatureType constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ISimpleJunctionFeature createOrphanFeature(IPoint location, int[] orphanEID) throws IOException, AutomationException
The CreateOrphanFeature method creates an orphan junction at the location corresponding to the supplied point. Connectivity is not established by CreateOrphanFeature, the Connect method must be called explicitly after the feature is created.
createOrphanFeature
in interface IGeometricNetwork
location
- A reference to a com.esri.arcgis.geometry.IPoint (in)orphanEID
- The orphanEID (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IWorkspaceEdit
,
ISpatialCacheManager
,
IWorkspaceEditEvents
,
Editor
,
IFeatureClass.createFeature()
public int getEdgeElement(IPoint location) throws IOException, AutomationException
getEdgeElement
in interface IGeometricNetwork
location
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IInvalidArea getInvalidArea() throws IOException, AutomationException
getInvalidArea
in interface IGeometricNetwork
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setInvalidAreaByRef(IInvalidArea invalidArea) throws IOException, AutomationException
setInvalidAreaByRef
in interface IGeometricNetwork
invalidArea
- A reference to a com.esri.arcgis.geodatabase.IInvalidArea (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getJunctionElement(IPoint location) throws IOException, AutomationException
getJunctionElement
in interface IGeometricNetwork
location
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public INetwork getNetwork() throws IOException, AutomationException
getNetwork
in interface IGeometricNetwork
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getNetworkType() throws IOException, AutomationException
getNetworkType
in interface IGeometricNetwork
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IFeatureClass getOrphanJunctionFeatureClass() throws IOException, AutomationException
getOrphanJunctionFeatureClass
in interface IGeometricNetwork
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void addRule(IConnectivityRule rule) throws IOException, AutomationException
addRule
in interface IGeometricNetwork
rule
- A reference to a com.esri.arcgis.geodatabase.IConnectivityRule (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void deleteRule(IConnectivityRule rule) throws IOException, AutomationException
deleteRule
in interface IGeometricNetwork
rule
- A reference to a com.esri.arcgis.geodatabase.IConnectivityRule (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IEnumRule getRules() throws IOException, AutomationException
getRules
in interface IGeometricNetwork
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IEnumRule getRulesByClassAndSubtype(int classID, int subtypeCode) throws IOException, AutomationException
getRulesByClassAndSubtype
in interface IGeometricNetwork
classID
- The classID (in)subtypeCode
- The subtypeCode (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IEnumFeature searchForNetworkFeature(IPoint location, int type) throws IOException, AutomationException
The SearchForNetworkFeature method returns an enumerator of the specified type of network feature located at the supplied point. If more than one feature is coincident with the point, then all are returned. The returned features may span different classes; the only restriction is that all features must be of the same feature type. There is no guarantee as to the order of the returned features.
searchForNetworkFeature
in interface IGeometricNetwork
location
- A reference to a com.esri.arcgis.geometry.IPoint (in)type
- A com.esri.arcgis.geodatabase.esriFeatureType constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IGeometry getGeometryForEdgeEID(int edgeEID) throws IOException, AutomationException
getGeometryForEdgeEID
in interface IGeometricNetwork
edgeEID
- The edgeEID (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IGeometry getGeometryForJunctionEID(int junctionEID) throws IOException, AutomationException
getGeometryForJunctionEID
in interface IGeometricNetwork
junctionEID
- The junctionEID (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public INetworkFeature getNetworkFeature(INetElementDescription networkElement) throws IOException, AutomationException
getNetworkFeature
in interface IGeometricNetwork
networkElement
- A reference to a com.esri.arcgis.geodatabase.INetElementDescription (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void spliceSimpleJunction(ISimpleJunctionFeature junction, int junctionEID, IGeometry geometry, boolean forceConnectivity) throws IOException, AutomationException
spliceSimpleJunction
in interface IGeometricNetwork
junction
- A reference to a com.esri.arcgis.geodatabase.ISimpleJunctionFeature (in)junctionEID
- The junctionEID (in)geometry
- A reference to a com.esri.arcgis.geometry.IGeometry (in)forceConnectivity
- The forceConnectivity (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void addJunctionWithSubsumption(ISimpleJunctionFeature junction, int junctionEID, ISimpleJunctionFeature subsumedJunction) throws IOException, AutomationException
The pJunction argument represents the junction which will subsume or replace the existing junction. The JunctionEID represents the Element ID of the junction feature specified in the first argument and can be obtained from SimpleJunctionFeature::EID property. The third argument, pSusbsumedJunction represents the junction being subsumed.
AddJunctionWithSubsumption will enforce network connectivity between the newly created feature and any network features which are geometrically coincident.
addJunctionWithSubsumption
in interface IGeometricNetwork
junction
- A reference to a com.esri.arcgis.geodatabase.ISimpleJunctionFeature (in)junctionEID
- The junctionEID (in)subsumedJunction
- A reference to a com.esri.arcgis.geodatabase.ISimpleJunctionFeature (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IWorkspaceEdit
,
ISpatialCacheManager
,
IWorkspaceEditEvents
,
Editor
,
IFeatureClass.createFeature()
public void add(IFeature newFeature) throws IOException, AutomationException
The IGraph:Add method is meant for internal use only.
There is no need to call INetworkFeature::CreateNetworkElements or INetworkFeature::Connect as these are handled internally by IFeature::Store
add
in interface IGraph
newFeature
- A reference to a com.esri.arcgis.geodatabase.IFeature (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void addFeatureClass(IFeatureClass featureClass, String enabledFieldName, int role, String ancillaryRoleFieldName) throws IOException, AutomationException
addFeatureClass
in interface IGraph
featureClass
- A reference to a com.esri.arcgis.geodatabase.IFeatureClass (in)enabledFieldName
- The enabledFieldName (in)role
- A com.esri.arcgis.geodatabase.esriNetworkClassAncillaryRole constant (in)ancillaryRoleFieldName
- The ancillaryRoleFieldName (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void deleteSet(ISet featuresToDelete) throws IOException, AutomationException
deleteSet
in interface IGraph
featuresToDelete
- A reference to a com.esri.arcgis.system.ISet (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IWorkspaceEdit
,
ISpatialCacheManager
,
IWorkspaceEditEvents
,
Editor
,
IFeatureClass.createFeature()
public IFeatureDataset getFeatureDataset() throws IOException, AutomationException
Returns a reference to the feature dataset in which the graph exists.
getFeatureDataset
in interface IGraph
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IDisplayFeedback getDisplayFeedback(IFeature feature, ISet features, IPoint point) throws IOException, AutomationException
getDisplayFeedback
in interface IGraph
feature
- A reference to a com.esri.arcgis.geodatabase.IFeature (in)features
- A reference to a com.esri.arcgis.system.ISet (in)point
- A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void init(IFeatureDataset dataset, int graphID, String graphName, boolean buildNormalizedTables, boolean createGraph) throws IOException, AutomationException
The IGraph::Init method is called internally during the process of creating a Geometric Network and should be called independently.
init
in interface IGraph
dataset
- A reference to a com.esri.arcgis.geodatabase.IFeatureDataset (in)graphID
- The graphID (in)graphName
- The graphName (in)buildNormalizedTables
- The buildNormalizedTables (in)createGraph
- The createGraph (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IEnumFeature merge(IEnumFeature mergingFeatures) throws IOException, AutomationException
The Merge method is not currently implemented.
merge
in interface IGraph
mergingFeatures
- A reference to a com.esri.arcgis.geodatabase.IEnumFeature (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ISet split(IEdgeFeature splittingEdge, IGeometry point) throws IOException, AutomationException
split
in interface IGraph
splittingEdge
- A reference to a com.esri.arcgis.geodatabase.IEdgeFeature (in)point
- A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IGeometricNetworkName
,
IWorkspaceEdit
,
IGraph
,
ISpatialCacheManager
,
IGraph.transformSet(com.esri.arcgis.system.ISet, int, com.esri.arcgis.geometry.IAffineTransformation2D)
,
IGeometricNetwork.addJunctionWithSubsumption(com.esri.arcgis.geodatabase.ISimpleJunctionFeature, int, com.esri.arcgis.geodatabase.ISimpleJunctionFeature)
,
IWorkspaceEditEvents
,
IGraph.split(com.esri.arcgis.geodatabase.IEdgeFeature, com.esri.arcgis.geometry.IGeometry)
,
IGeometricNetwork
,
Editor
,
IFeatureClass.createFeature()
public void transformSet(ISet features, int type, IAffineTransformation2D tranformation) throws IOException, AutomationException
TransformSet will maintain connectivity between network features, there is no need to call Connect or RebuildConnectivity after TransformSet to establish connectivity. The type of stretching that is employed during TransformSet can be changed using the VertexBasedStretching property.
transformSet
in interface IGraph
features
- A reference to a com.esri.arcgis.system.ISet (in)type
- A com.esri.arcgis.geodatabase.esriTransformType constant (in)tranformation
- A reference to a com.esri.arcgis.geometry.IAffineTransformation2D (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IWorkspaceEdit
,
ISpatialCacheManager
,
IWorkspaceEditEvents
,
Editor
,
IFeatureClass.createFeature()
public boolean isVertexBasedStretching() throws IOException, AutomationException
VertexBasedStretching controls the stretching model for the specified graph: vertex (true) or junction (false) based stretching. Vertex based stretching modifies features to the nearest vertex(es), while junction based stretching will proportionally modify the feature to the nearest junction(s).
The VertexBasedStretching property should be used to set or get the stretching model when edits are being made to the workspace using the IWorkspaceEdit interface. During an edit session in the Editor, VertexBasedStretching can be used to get the stretching model but cannot be used to set the stretching model. In this case IEditProperties::StretchGeometry overwrites VertexBasedStretching and should be used to set the desired stretching model.
isVertexBasedStretching
in interface IGraph
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.INetworkUpdate
,
IForwardStar
,
IGraph
,
INetworkClass.getNetworkAncillaryRole()
,
INetworkWorkspace
,
INetworkClass.getGeometricNetwork()
,
INetworkClass.getFieldToWeightMapping(int)
,
IUtilityNetwork
,
INetwork
public void setVertexBasedStretching(boolean vertexBased) throws IOException, AutomationException
setVertexBasedStretching
in interface IGraph
vertexBased
- The vertexBased (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.INetworkUpdate
,
IWorkspaceEdit
,
IForwardStar
,
ISpatialCacheManager
,
IGraph
,
INetworkClass.getNetworkAncillaryRole()
,
INetworkWorkspace
,
IWorkspaceEditEvents
,
INetworkClass.getGeometricNetwork()
,
Editor
,
INetworkClass.getFieldToWeightMapping(int)
,
IFeatureClass.createFeature()
,
IUtilityNetwork
,
INetwork
public ITable getErrorTable() throws IOException, AutomationException
The ErrorTable property provides the ability to either return the error table if it exists or associate an error table with the geometric network, after it has been created with the IGeometricNetworkErrorDetection::CreateErrorTable method. Once the error table is created, it can be associated with, or retrieved from, a geometric network. However, this association will not be persisted—the association is only for the lifetime of the geometric network component instance. The user is responsible for managing this error table.
getErrorTable
in interface IGeometricNetworkErrorDetection
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setErrorTable(ITable errorTable) throws IOException, AutomationException
setErrorTable
in interface IGeometricNetworkErrorDetection
errorTable
- A reference to a com.esri.arcgis.geodatabase.ITable (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ISet createSelectionSetFromErrorTable() throws IOException, AutomationException
A set of selection sets may be created from all the entries found in the error table that are currently associated with a geometric network via the CreateSelectionSetFromErrorTable method. This is a mechanism that can be used to create instances of the network features that are listed in the error table.
createSelectionSetFromErrorTable
in interface IGeometricNetworkErrorDetection
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void createErrorTable(String name, ITable[] errorTable) throws IOException, AutomationException
The CreateErrorTable method is used to create a table that can be used to persist information related to inconsistent network features (using a fixed table schema) with the specified name. Such network error information can only be persisted by the geometric network in a table with this schema. This table is user managed and should remain unversioned.
createErrorTable
in interface IGeometricNetworkErrorDetection
name
- The name (in)errorTable
- A reference to a com.esri.arcgis.geodatabase.ITable (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void detectNetworkErrors(int errorType, IEnvelope areaOfInterest, ISet selectionSets, ISet[] problemSelectionSets) throws IOException, AutomationException
The DetectNetworkErrors method is used to detect the different possible types of network connectivity and geometry problems. While the DetectNetworkErrors method will discover network features with inconsistent connectivity, it does not perform an exhaustive verification. The IGeometricNetworkConnectivity2::CheckandRepairConnectivity method performs a more exhaustive check for network inconsistencies.
The DetectNetworkErrors method takes a number of arguements, the first being the type of network error to detect. This arguement corresponds with a value from the esriNetworkErrorType enumeration. Use esriNETConnectivity to verify network connectivity and esriNETGeometry to verify network feature geometry.
The second argument is an IEnvelope object defining the area of interest, any feature within or intersecting the envelope will be verified. The third arguement is a selection set of features. If Nothing is supplied for an area of interest, the features in the selection set will be verified. Finally, any features identified as invalid will be returned in a selection set.
detectNetworkErrors
in interface IGeometricNetworkErrorDetection
errorType
- A com.esri.arcgis.geodatabase.esriNetworkErrorType constant (in)areaOfInterest
- A reference to a com.esri.arcgis.geometry.IEnvelope (in)selectionSets
- A reference to a com.esri.arcgis.system.ISet (in)problemSelectionSets
- A reference to a com.esri.arcgis.system.ISet (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void deleteNetworkElements(ISet selectionSets) throws IOException, AutomationException
The DeleteNetworkElements method takes an ISet of ISelectionSets. All of the network features contained in the various selection sets will have their network elements deleted from the logical network. The primary reason why one would want to do this is to correct the geometry of an edge feature that was loaded with invalid polyline geometry. This method should be called on valid network features.
deleteNetworkElements
in interface IGeometricNetworkErrorDetection
selectionSets
- A reference to a com.esri.arcgis.system.ISet (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void checkAndRepairConnectivity(boolean checkOnly, String logFilePath, ISet[] errorSelectionSets, boolean[] hasInternalInconsistencies, IRepairConnectivityProgress repairConnectivityProgress) throws IOException, AutomationException
The CheckandRepairConnectivity method will check for and optionally repair an assortment of connectivity errors within a geometric network. In contrast to RebuildConnectivity2, CheckandRepairConnectivity will only repair those features who have been identified as having inconsistent connectivity.
For a geometric network in a Personal or File Geodatabase, CheckandRepairConnectivity will work against the entire geometric network. For geometric networks in an ArcSDE Geodatabase, CheckandRepairConnectivity will work against the geometric network connectivity within the version currently being edited. Types of network inconsistencies that CheckandRepairConnectivity will discover and repair include:
- network features missing element IDs
- network features with more than 1 element ID
- an element ID that references a deleted feature
- inconsistent connectivity
CheckandRepairConnectivity takes five mandatory arguments. The first, checkOnly is a boolean that specifies whether errors will be repaired or not. A value of False designates that errors are corrected. If True is specified CheckandRepairConnectivity will run in Check Only mode in which errors will be discovered but not repaired.
The second argument dictates whether CheckandRepairConnectivity will produce a log file listing the feature class and Object ID of all the network errors that were discovered and repaired. For a geometric network called, 'MyNetwork' and a supplied path of 'D:\Temp\Logifles\' the logfilePath arguement would appear as; "D:\Temp\Logifles\MyNetwork.txt". To run CheckandRepairConnectivity with no log file, specify an empty string for the logfilePath argument.
The third argument is a Set object that contains references to repaired features. errorSelectionSets can be used to determine if any features were found to have inconsistencies and repaired. The set object will contain a reference to each feature class which contains repaired features.
The fourth argument is a boolean which returns the state of the logical network. If the logical network contains internal inconsistencies, that is, inconsistencies which do not reference existing features within the geometric network, hasInternalInconsistencies will return True, otherwise, it will return False.
The fifth argumnt is an IRepairConnectivityProgress object that is used to retrieve any warnings generated by CheckandRepairConnectivity. During the process of repairing network connectivity, CheckandRepairConnectivity may perform actions that discover network features that require further review. If any warnings are encountered during repair of the network, they can be accessed using IRepairConnectivityProgress::Warnings. The type of warning, feature class and Object ID of the feature is included. Types of warnings include:
- creation of new orphan junctions
- invalid geometries
- coincident junctions
- coincident vertices
checkAndRepairConnectivity
in interface IGeometricNetworkConnectivity2
checkOnly
- The checkOnly (in)logFilePath
- The logFilePath (in)errorSelectionSets
- A reference to a com.esri.arcgis.system.ISet (out: use single element array)hasInternalInconsistencies
- The hasInternalInconsistencies (out: use single element array)repairConnectivityProgress
- A reference to a com.esri.arcgis.geodatabase.IRepairConnectivityProgress (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void rebuildConnectivity2(IEnvelope incrementalRebuildArea) throws IOException, AutomationException
If network connectivity errors are found within the geometric network, they can generally be corrected through the use of the RebuildConnectivity2 method. This method takes an envelope which should contain the network features for which connectivity will be rebuilt. The RebuildConnectivity2 method does not check for invalid connectivity, it will remove and then rebuild the connectivity of any feature contained within or intersecting the specified envelope.
RebuildConnectivity2 should only be used to rebuild the connectivity of features whose invalid geometry has been repaired or to rebuild inconsistent connectivity on features. RebuildConnectivity2 is not as computationally expensive as IGeometricNetworkConnectivity::RebuildConnectivity and as such, can be used on a larger number of network features. However, the size of the envelope supplied to RebuildConnectivity2 should still be taken into consideration. It is generally faster to call RebuildConnectivity2 on small individual areas rather than one large area that encompasses the smaller areas.
RebuildConnectivity should not be used to establish connectivity between network features. To establish connectivity, use INetworkFeature::Connect.
If RebuildConnectivity2 encounters an edge feature that is missing a junction on an endpoint, it will insert a new orphan junction at the endpoint of the edge feature.
rebuildConnectivity2
in interface IGeometricNetworkConnectivity2
incrementalRebuildArea
- A reference to a com.esri.arcgis.geometry.IEnvelope (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.IGeometricNetworkConnectivity.rebuildConnectivity(com.esri.arcgis.geometry.IEnvelope)
,
IGeometricNetworkConnectivity2.rebuildConnectivity2(com.esri.arcgis.geometry.IEnvelope)
public void rebuildConnectivity(IEnvelope incrementalRebuildArea) throws IOException, AutomationException
If network connectivity errors are found within the geometric network, they can generally be corrected through the use of the RebuildConnectivity method. This method takes an envelope which should contain the network features for which connectivity should be rebuilt. The RebuildConnectivity method does not check for invalid connectivity, it will remove and then rebuild the connectivity of any feature contained within or intersecting the specified envelope. It is a computationally expensive operation and can take a significant amount of time to complete if executed against a large number of network features. The envelope should also be as small as possible, it is faster to call RebuildConnectivity on two small areas rather than one large area that encompasses both smaller areas. RebuildConnectivity should not be used to establish connectivity between valid network features. To establish connectivity, use INetworkFeature::Connect .
There are instances when RebuildConnectivity will not be able to rebuid the connectivity for network features. For this reason, IGeometricNetworkConnectivity::RebuildConnectivity2 should be used in place of RepairConnectivity .
rebuildConnectivity
in interface IGeometricNetworkConnectivity
incrementalRebuildArea
- A reference to a com.esri.arcgis.geometry.IEnvelope (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public boolean isReduceNetworkConflicts() throws IOException, AutomationException
ReduceNetworkConflicts will return a boolean value indicating the reconcile strategy applied to the geometric network. The default value is false, indicating that the standard reconcile strategy will be applied. An exclusive schema lock must be obtained before changing the ReduceNetworkConflicts property. See the ISchemaLock interface for information on listing existing schema locks and obtaining an exclusive schema lock.
This property is set at the geometric network level, which means that all clients will reconcile using the same strategy.
isReduceNetworkConflicts
in interface IGeometricNetworkReconcileProperties
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setReduceNetworkConflicts(boolean reduceNetworkConflicts) throws IOException, AutomationException
setReduceNetworkConflicts
in interface IGeometricNetworkReconcileProperties
reduceNetworkConflicts
- The reduceNetworkConflicts (in)
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 void interfaceSupportsErrorInfo(GUID riid) throws IOException, AutomationException
Indicates whether the interface supports IErrorInfo.
interfaceSupportsErrorInfo
in interface ISupportErrorInfo
riid
- A Structure: com.esri.arcgis.support.ms.stdole.GUID (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 |