|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
Provides access to members that control the behavior and properties of a feature class.
The IFeatureClass interface is the main interface for getting and setting properties of a feature class. For example, use the IFeatureClass interface to get the type of feature class, get a count of features that satisfy some query, or create a new feature in the feature class. The IFeatureClass interface inherits from the IObjectClass interface.
IClass,
IObjectClass,
INetworkClass| Method Summary | |
IFeature |
createFeature()
Create a new feature, with a system assigned object ID and null property values. |
IFeatureBuffer |
createFeatureBuffer()
Create a feature buffer that can be used with an insert cursor. |
int |
featureCount(IQueryFilter queryFilter)
The number of features selected by the specified query. |
IField |
getAreaField()
The geometry area field. |
IFeature |
getFeature(int iD)
Get the feature with the specified object ID. |
int |
getFeatureClassID()
The unique ID for the Feature Class. |
IFeatureDataset |
getFeatureDataset()
The feature dataset that contains the feature class. |
IFeatureCursor |
getFeatures(java.lang.Object fids,
boolean recycling)
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeoDatabaseHelper.getFeatures(com.esri.arcgis.geodatabase.IFeatureClass, int[], boolean). |
int |
getFeatureType()
The type of features in this feature class. |
IField |
getLengthField()
The geometry length field. |
java.lang.String |
getShapeFieldName()
The name of the default sShape field. |
int |
getShapeType()
The type of the default Shape for the features in this feature class. |
IFeatureCursor |
IFeatureClass_insert(boolean useBuffering)
Returns a cursor that can be used to insert new features. |
IFeatureCursor |
IFeatureClass_update(IQueryFilter filter,
boolean recycling)
Returns a cursor that can be used to update features selected by the specified query. |
IFeatureCursor |
search(IQueryFilter filter,
boolean recycling)
Returns an object cursor that can be used to fetch feature objects selected by the specified query. |
ISelectionSet |
select(IQueryFilter queryFilter,
int selType,
int selOption,
IWorkspace selectionContainer)
Returns a selection That contains the object ids selected by the specified query. |
| Methods inherited from interface com.esri.arcgis.geodatabase.IObjectClass |
getAliasName, getObjectClassID, getRelationshipClasses |
| Methods inherited from interface com.esri.arcgis.geodatabase.IClass |
addField, addIndex, deleteField, deleteIndex, findField, getCLSID, getEXTCLSID, getExtension, getExtensionProperties, getFields, getIndexes, getOIDFieldName, isHasOID |
| Method Detail |
public int getShapeType()
throws java.io.IOException,
AutomationException
ShapeType returns the basic type of geometry of a shape. For the purposes of using the ShapeType property in deciding how to render/symbolize a layer, only esriGeometryPolyline, esriGeometryPolygon, esriGeometryPoint, esriGeometryMulitpoint, and esriGeometryMultipatch need to be checked. All the other types will report as being one of these five types. The reason is that esriGeometryBezier3Curve or esriGeometryPath, etc. can be segments or parts of another shape.
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public int getFeatureType()
throws java.io.IOException,
AutomationException
This read-only property returns the feature type for the feature class. This feature type can be one of the following esriFeatureType. This property can be used to determine if a feature class is of a particular type, in order for the feature class to added to a network or topology, or possibly to skip over the feature class in an enumeration.
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.esriFeatureType
public java.lang.String getShapeFieldName()
throws java.io.IOException,
AutomationException
This read-only property returns the name of the geometry field for the feature class.
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.IGeometry,
ILine,
IPoint,
IPolygon
public IField getAreaField()
throws java.io.IOException,
AutomationException
This read-only property returns the name of the field which records the area of each feature. Only feature classes that have a ShapeType of esriGeometryPolygon have an Area field.
A null pointer will be returned if:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.IField,
IFields
public IField getLengthField()
throws java.io.IOException,
AutomationException
This read-only property returns the name of the field which records the length of each feature. Only feature classes that have a ShapeType of esriGeometryPolygon or esriGeometryPolyLine have a Length field. For Line features, this field records the length of the polyline. For polygon features, this field records the perimeter of the polygon.
A null pointer will be returned if:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.IField,
IFields
public IFeatureDataset getFeatureDataset()
throws java.io.IOException,
AutomationException
This read-only property returns the IFeatureDataset interface on the feature dataset that this feature class is a memeber of. If the feature class is a stand alone feature class (it does not have a feature dataset), then this function will return a null pointer. A coverage feature class will return the IFeatureDataset interface to the coverage itself. Shapefiles will always return a null pointer.
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.IFeatureDataset,
IDataset
public IFeature createFeature()
throws java.io.IOException,
AutomationException
CreateFeature will create a new feature for the feature class. The new feature is by default assigned a unique object ID (OID). All other fields are initialized to null values if they can be made null and to built-in default values appropriate to the type of the field if they cannot be made null. Use the IFeature::Store method to actually store this new feature in the database. When working with a versioned feature class, CreateFeature should only be called within an edit session. You can start an edit session by calling IWorkspaceEdit::StartEditing. All edits to features that participate in a Topology or Geometric Network must be performed within an edit session and bracketed within an edit operation.
After calling CreateFeature, the default subtype value is not automatically set nor are default values initialized. For features without a subtype that have defined default values, calling IRowSubtypes::InitDefaultValues will initialize the default values. Use IRowSubtypes::SubtypeCode to set the subtype value for features with subtypes before calling IRowSubtypes::InitDefaultValues to initialize the default values for the particular subtype.
Calling the CreateFeature method on a feature class (via the IFeatureClass interface on the feature class) has the same effect as calling the CreateRow method on the FeatureClass (via the ITable interface on the feature class) except that the IFeatureClass methods return IFeature interfaces on the returned row object.
The basic process to create a new feature is:
1) Create the feature
2) Create the geometry for the feature
3) Store the geometry in the feature
4) Store the feature
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.IFeature,
IRowSubtypes,
IWorkspaceEdit
public IFeature getFeature(int iD)
throws java.io.IOException,
AutomationException
GetFeature will return the IFeature interface for a feature in the feature class with a given Object ID (OID). This method is typically used to find a particular feature that you know the OID for. Use a cursor if you wish to loop through all features in the feature class.
Calling the GetFeature method on a feature class (via the IFeatureClass interface on the feature class) has the same effect as calling the GetRow method on the FeatureClass (via the ITable interface on the feature class) except that the IFeatureClass methods return IFeature interfaces.
iD - The iD (in)
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.IObject,
IFeature
public IFeatureCursor getFeatures(java.lang.Object fids,
boolean recycling)
throws java.io.IOException,
AutomationException
GeoDatabaseHelper.getFeatures(com.esri.arcgis.geodatabase.IFeatureClass, int[], boolean).
GetFeatures will return an IFeatureCursor which contains all the features in the feature class with the given Object IDs (OID). This method can be used to loop through a particular set of features that you know the OIDs for.
Calling the GetFeatures method in IFeatureClass has the same effect as calling the GetRows method in ITable except that the IFeatureClass method returns the IFeatureCursor interface on the returned cursor.
fids - A Variant (in)recycling - The recycling (in)
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.IFeature,
IFeatureCursor
public int getFeatureClassID()
throws java.io.IOException,
AutomationException
This read-only property will return the unique identifier for this feature class. All feature classes inside Geodatabases have a unique ID. Coverage and Shapefile feature classes do not, so IFeatureClass::FeatureClassID will always return -1 for Coverage and Shapefile feature classes. Since IFeatureClass inherits from IObjectClass, you can also get the feature class ID from IObjectClass:: ObjectClassID.
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.IObjectClass
public IFeatureBuffer createFeatureBuffer()
throws java.io.IOException,
AutomationException
The CreateFeatureBuffer method creates a feature buffer and returns the IFeatureBuffer interface. This can be used to create new features in the feature class with an insert cursor. Like creating a feature with IFeatureClass::CreateFeature, the field values for the new feature must be initialized to some value before it can be stored in the database. All edits to features that participate in a Topology or Geometric Network must be performed within an edit session and bracketed within an edit operation.
Calling the CreateFeatureBuffer method in IFeatureClass has the same effect as calling the CreateRowBuffer interface in ITable except that the IFeatureClass methods return an IFeatureBuffer interface on the created row buffer.
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.IFeature,
IFeatureCursor,
IFeatureBuffer
public int featureCount(IQueryFilter queryFilter)
throws java.io.IOException,
AutomationException
FeatureCount returns the number of features that satisfy some attribute and/or spatial query as specified by an IQueryFilter object. If Nothing is supplied for the IQueryFilter, then FeatureCount returns the total number of features in the feature class.
In Java, rather than passing Nothing to get the total number of features, you should pass null.
queryFilter - A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.IQueryFilter
public IFeatureCursor search(IQueryFilter filter,
boolean recycling)
throws java.io.IOException,
AutomationException
Search will return an IFeatureCursor with all of the features that satisfy some attribute and/or spatial query as specified by an IQueryFilter object. If Nothing is given as the IQueryFilter, then the feature cursor will have all of the features from the feature class.
The recycling parameter controls row object allocation behavior. Recycling cursors rehydrate a single feature object on each fetch and can be used to optimize read-only access, for example, when drawing. It is illegal to maintain a reference on a feature object returned by a recycling cursor across multiple calls to NextFeature on the cursor. Feature objects returned by a recycling cursor should not be modified. Non-recycling cursors return a separate feature object on each fetch. The features returned by a non-recycling cursor may be modified and stored with polymorphic behavior. The Geodatabase guarantees "unique instance semantics" on non-recycling feature objects fetched during an edit session. If the feature object to be retrieved by a call to search has already been instantiated and is being referenced by the calling application, then a reference to the existing feature object is returned.
Feature cursors returned from the Search method cannot be used to update the features in the cursor. The feature cursor returned from the Update method should be used to update those features.
Non-recycling feature cursors returned from the Search method *MUST* be used when copying features from the cursor into an insert cursor of another class. This is because a recycling cursor reuses the same geometry and under some circumstances all of the features inserted into the insert cursor may have the same geometry. Using a non-recycling cursor ensures that each geometry is unique.
filter - A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)recycling - The recycling (in)
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.IQueryFilter,
IFeatureCursor
public IFeatureCursor IFeatureClass_update(IQueryFilter filter,
boolean recycling)
throws java.io.IOException,
AutomationException
filter - A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)recycling - The recycling (in)
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public IFeatureCursor IFeatureClass_insert(boolean useBuffering)
throws java.io.IOException,
AutomationException
useBuffering - The useBuffering (in)
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.
public ISelectionSet select(IQueryFilter queryFilter,
int selType,
int selOption,
IWorkspace selectionContainer)
throws java.io.IOException,
AutomationException
Select will return an ISelectionSet with all of the features that satisfy some attribute and/or spatial query as specified by an IQueryFilter object. If Nothing is given as the IQueryFilter, then the selection will have all of the features from the feature class.
Calling the Select method in IFeatureClass has the same effect as calling the corresponding method in ITable.
When calling Select the selectionContainer parameter is no longer required. Null (C#, VB.Net) or Nothing (VB6) should be supplied it its place.
(Note: Supplying a workspace object for the selectionContainer parameter that is read-only will fail since Select will write the results of the selection to the workspace.)
queryFilter - A reference to a com.esri.arcgis.geodatabase.IQueryFilter (in)selType - A com.esri.arcgis.geodatabase.esriSelectionType constant (in)selOption - A com.esri.arcgis.geodatabase.esriSelectionOption constant (in)selectionContainer - A reference to a com.esri.arcgis.geodatabase.IWorkspace (in)
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.ISelectionSet,
IQueryFilter
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||