com.esri.arcgis.geometry
Interface IGeometryCollection

All Superinterfaces:
java.io.Serializable
All Known Implementing Classes:
GeometryBag, IGeometryCollectionProxy, MultiPatch, Multipoint, Polygon, Polyline, TriangleFan, Triangles, TriangleStrip

public interface IGeometryCollection
extends java.io.Serializable

Provides access to members that can be used for accessing, adding and removing individual geometries of a multi-part geometry (Multipoint, Polyline, Polygon, MultiPatch, and GeometryBag).

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Description

A Collection of Geometry parts.  For Multipoints, TriangleFans, and TriangleStrips, the Geometry parts are Points. For Polylines, the Geometry parts are Paths.  For Polygons, the Geometry parts are Rings.  For MultiPatches, the Geometry parts are TriangleFans, TriangleStrips, or Rings.  For GeometryBags, the Geometry parts are any IGeometry object.

The GeometryCollection can be used to access, manipulate, add, insert, remove, and set specific parts of a composite geometry.

See Also:
IGeometry

Method Summary
 void addGeometries(int count, IGeometry newGeometries)
          Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.addGeometries(com.esri.arcgis.geometry.IGeometryCollection, com.esri.arcgis.geometry.IGeometry[]).
 void addGeometry(IGeometry inGeometry, java.lang.Object before, java.lang.Object after)
          Adds a reference to the input geometry either at the end, or before, or after the specified index.
 void addGeometryCollection(IGeometryCollection newGeometries)
          Adds references to geometries in the input collection.
 void geometriesChanged()
          Tells this geometry collection that some of its geometries have been altered.
 IGeometry getGeometry(int index)
          A reference to the ith geometry.
 int getGeometryCount()
          The number of geometries in this collection.
 void insertGeometries(int index, int count, IGeometry newGeometries)
          Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.insertGeometries(com.esri.arcgis.geometry.IGeometryCollection, int, com.esri.arcgis.geometry.IGeometry[]).
 void insertGeometryCollection(int index, IGeometryCollection newGeometries)
          Inserts at the specified index references to all if the geometries in the input collection.
 void queryGeometries(int index, int count, IGeometry[] geometries)
          Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.queryGeometries(com.esri.arcgis.geometry.IGeometryCollection, int, com.esri.arcgis.geometry.IGeometry[][]).
 void removeGeometries(int index, int count)
          Removes references to some geometries from this collection.
 void setGeometries(int count, IGeometry newGeometries)
          Replaces all geometries in the collection with the specified number of references to those in the input array.
 void setGeometryCollection(IGeometryCollection newParts)
          Replaces all geometries in the collection with references to geometries from the input collection.
 

Method Detail

getGeometryCount

public int getGeometryCount()
                     throws java.io.IOException,
                            AutomationException
The number of geometries in this collection.

Supported Platforms

Windows, Solaris, Linux

Description

Returns the number of Geometries in the GeometryCollection.  The last Geometry in the GeometryCollection has an index equal to GeometryCount - 1.

Returns:
The cParts
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getGeometry

public IGeometry getGeometry(int index)
                      throws java.io.IOException,
                             AutomationException
A reference to the ith geometry.

Supported Platforms

Windows, Solaris, Linux

Description

Returns the ith Geometry from the GeometryCollection.  The first Geometry has index 0 and the last Geometry has index equal to GeometryCount - 1.  The last Geometry can also be referenced using index -1.

Remarks

Note: The GeometryType returned by the Geometry method depends on which object type points the IGeometryCollection pointer.

IGeometryCollection Object GeometryType Returned Object GeometryType
Polygon
Rings
Polyline
Paths
Multipoint
Points
Multipatch
TriangleFans or TriangleStrips or Rings
TriangleFan
Points
TriangleStrip
Points
Geometry Bag
Any type of IGeometry

Parameters:
index - The index (in)
Returns:
A reference to a com.esri.arcgis.geometry.IGeometry
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addGeometry

public void addGeometry(IGeometry inGeometry,
                        java.lang.Object before,
                        java.lang.Object after)
                 throws java.io.IOException,
                        AutomationException
Adds a reference to the input geometry either at the end, or before, or after the specified index.

Supported Platforms

Windows, Solaris, Linux

Remarks

When applying the AddGeometry method give either the before or after index and not both. Adding a Geometry to the collection as the first one is done by setting the before index as 0.

The spatial reference of the GeometryCollection is transferred (objects projected if necessary) to any objects added to it. However the spatial reference of the added geometry is not transferred to the GeometryCollection. Always make sure to set the spatial reference on the object GeometryCollection prior to add other geometries to it to avoid creating invalid geometry. For example, adding geometry objects to a GeometryBag that doesn't have a well-defined spatial reference will set an undefined spatial reference to all the objects added to the bag. Using this GeometryBag may cause unexpected behavior with the ITopologicalOperator::ConstructUnion method.

 

Parameters:
inGeometry - A reference to a com.esri.arcgis.geometry.IGeometry (in)
before - A Variant (in, optional, pass null if not required)
after - A Variant (in, optional, pass null if not required)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

queryGeometries

public void queryGeometries(int index,
                            int count,
                            IGeometry[] geometries)
                     throws java.io.IOException,
                            AutomationException
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.queryGeometries(com.esri.arcgis.geometry.IGeometryCollection, int, com.esri.arcgis.geometry.IGeometry[][]).

Populates the array with references to a sub-sequence of geometries. This method is intended for internal use only.

Supported Platforms

Windows, Solaris, Linux

Remarks

Note: The GeometryType returned by the QueryGeometries method depends on which object type points the IGeometryCollection pointer.

IGeometryCollection Object GeometryType Returned Object GeometryType
Polygon
Rings
Polyline
Paths
Multipoint
Points
Multipatch
TriangleFans or TriangleStrips or Rings
TriangleFan
Points
TriangleStrip
Points
Geometry Bag
Any type of IGeometry

Parameters:
index - The index (in)
count - The count (in)
geometries - A reference to a com.esri.arcgis.geometry.IGeometry (out: use single element array)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addGeometries

public void addGeometries(int count,
                          IGeometry newGeometries)
                   throws java.io.IOException,
                          AutomationException
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.addGeometries(com.esri.arcgis.geometry.IGeometryCollection, com.esri.arcgis.geometry.IGeometry[]).

Adds references to the specified geometries. This method is intended for internal use only.

Supported Platforms

Windows, Solaris, Linux

Remarks


The geometries are added last in the list. Use an array of geometries (IGeometry) and the exact number (count ) of elements in the array. Exceeding the boundary of the array will cause an application error. If you don't want to place the geometries last in the collection then use the InsertGeometries method.

Parameters:
count - The count (in)
newGeometries - A reference to a com.esri.arcgis.geometry.IGeometry (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

addGeometryCollection

public void addGeometryCollection(IGeometryCollection newGeometries)
                           throws java.io.IOException,
                                  AutomationException
Adds references to geometries in the input collection.

Supported Platforms

Windows, Solaris, Linux

Description

Adds references of all of the parts of the input GeometryCollection to the end of the current GeometryCollection.

Parameters:
newGeometries - A reference to a com.esri.arcgis.geometry.IGeometryCollection (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

insertGeometries

public void insertGeometries(int index,
                             int count,
                             IGeometry newGeometries)
                      throws java.io.IOException,
                             AutomationException
Deprecated. This method uses C style arrays which are not supported in the ArcGIS API for Java. It is replaced by GeometryEnvironment.insertGeometries(com.esri.arcgis.geometry.IGeometryCollection, int, com.esri.arcgis.geometry.IGeometry[]).

Inserts at the specified index references to some number of geometries in the input array. This method is intended for internal use only.

Supported Platforms

Windows, Solaris, Linux

Remarks

The geometries are inserted before the ith (index) element in the list. Use an array of geometries and give the exact number (count ) of elements in the array. A too large value for the count parameter causes exceeding the boundary of the array and will cause an application error. To place the geometries last in the collection then use the addGeometries method.

 

Parameters:
index - The index (in)
count - The count (in)
newGeometries - A reference to a com.esri.arcgis.geometry.IGeometry (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

insertGeometryCollection

public void insertGeometryCollection(int index,
                                     IGeometryCollection newGeometries)
                              throws java.io.IOException,
                                     AutomationException
Inserts at the specified index references to all if the geometries in the input collection.

Supported Platforms

Windows, Solaris, Linux

Remarks

InsertGeometryCollection merges one GeometryCollection within another at a specified index.

Parameters:
index - The index (in)
newGeometries - A reference to a com.esri.arcgis.geometry.IGeometryCollection (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setGeometries

public void setGeometries(int count,
                          IGeometry newGeometries)
                   throws java.io.IOException,
                          AutomationException
Replaces all geometries in the collection with the specified number of references to those in the input array. This method is intended for internal use only.

Parameters:
count - The count (in)
newGeometries - A reference to a com.esri.arcgis.geometry.IGeometry (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setGeometryCollection

public void setGeometryCollection(IGeometryCollection newParts)
                           throws java.io.IOException,
                                  AutomationException
Replaces all geometries in the collection with references to geometries from the input collection.

Parameters:
newParts - A reference to a com.esri.arcgis.geometry.IGeometryCollection (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

removeGeometries

public void removeGeometries(int index,
                             int count)
                      throws java.io.IOException,
                             AutomationException
Removes references to some geometries from this collection.

Supported Platforms

Windows, Solaris, Linux

Remarks

RemoveGeometries deletes count number of geometries from the index location.

Parameters:
index - The index (in)
count - The count (in)
Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

geometriesChanged

public void geometriesChanged()
                       throws java.io.IOException,
                              AutomationException
Tells this geometry collection that some of its geometries have been altered. Use this method on polylines, polygons and multipatches after directly editing one of its parts.

Supported Platforms

Windows, Solaris, Linux

Description

GeometriesChanged flags that the geometries have been changed. It also marks a top level geometry as being non-simple. Use it when manipulating the parts of a geometry directly (for example, rotating a ring). The top level geometry won't know that its cached envelope, length, centroid, etc. are invalid until this method is used.

Throws:
java.io.IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.