

PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 
java.lang.Object com.esri.arcgis.geometry.Point
public class Point
A two dimensional point, optionally with measure, height, and ID attributes.
Constructor Summary  

Point()
Constructs a Point using ArcGIS Engine. 

Point(Object obj)
Deprecated. As of ArcGIS 9.2, replaced by normal Java casts. Point thePoint = (Point) obj; 
Method Summary  

void 
assign(IClone src)
Assigns the properties of src to the receiver. 
IGeometry 
buffer(double distance)
Constructs a polygon that is the locus of points at a distance less than or equal to a specified distance from this geometry. 
void 
clip(IEnvelope clipperEnvelope)
Constructs the intersection of this geometry and the specified envelope. 
void 
clipDense(IEnvelope clipperEnvelope,
double denseDistance)
Constructs the intersection of this geometry and the specified envelope; densifies lines in output contributed by the clipping envelope. 
int 
compare(IPoint otherPoint)
Compares X, Y, M, Z, ID of this point (in that order) with that of the other point. 
void 
constrainAngle(double constraintAngle,
IPoint anchor,
boolean allowOpposite)
Projects this point to the point on the infinite line defined by anchor and angle (in radians). 
void 
constrainDistance(double constraintRadius,
IPoint anchor)
Projects this point to the perimeter of the circle defined by radius and anchor. 
void 
constructAlong(ICurve curve,
int extension,
double distance,
boolean asRatio)
Constructs a point distance units along the input curve. 
void 
constructAngleBisector(IPoint from,
IPoint through,
IPoint to,
double distance,
boolean useAcuteAngle)
Constructs a point on the bisector of the angle (from, through, to). 
void 
constructAngleDistance(IPoint p,
double inAngle,
double distance)
Constructs a point at a specified angle (in radians) from the horizontal axis and a specified distance away from the input point. 
void 
constructAngleIntersection(IPoint p1,
double angle1,
IPoint p2,
double angle2)
Constructs the point of intersection between two lines defined by the input points and angles (in radians). 
void 
constructAverage(IPointCollection points,
int attributeType)
Constructs the geometric average of the input point collection. 
void 
constructDeflection(ILine baseLine,
double distance,
double inAngle)
Constructs a point in the polar coordinate system defined by baseLine and its 'from' point. 
void 
constructDeflectionIntersection(ILine baseLine,
double startAngle,
double endAngle,
boolean onRightSide)
Constructs the point of intersection of two rays with origins at the endpoints of the base line and the specified angles (in radians). 
void 
constructOffset(ICurve curve,
int extension,
double distance,
boolean asRatio,
double offset)
Constructs a point distance units along the input curve and offset units perpendicularly away from it. 
void 
constructParallel(ISegment segment,
int extension,
IPoint start,
double distance)
Constructs a point distance units from start, parallel to the tangent at the point nearest to start on the (extended) segment. 
void 
constructPerpendicular(ISegment base,
int extension,
IPoint p,
double distance,
boolean bUseLineOrientation)
Constructs a point 'distance' units from p and lying along the line normal to base and passing through p. 
void 
constructThreePointResection(IPoint point1,
double angleP1P2,
IPoint point2,
double angleP2P3,
IPoint point3,
double[] arcAngle)
Constructs the point of observation from which two signed angles between three points were measured; returns an angle which can help establish the confidence of the observation location: A small angle indicates greater uncertainty in the location. 
void 
constructUnion(IEnumGeometry geometries)
Defines this geometry to be the union of the inputs. 
boolean 
contains(IGeometry other)
Indicates if this geometry contains the other geometry. 
IGeometry 
convexHull()
Constructs the convex hull of this geometry. 
String 
createMGRS(int numDigits,
boolean round,
int mode)
Returns the MGRS/USNG description of a point. 
boolean 
crosses(IGeometry other)
Indicates if the two geometries intersect in a geometry of lesser dimension. 
void 
cut(IPolyline cutter,
IGeometry[] leftGeom,
IGeometry[] rightGeom)
Splits this geometry into a part left of the cutting polyline, and a part right of it. 
void 
deserialize(IXMLSerializeData data)
Deserializes an object from XML. 
IGeometry 
difference(IGeometry other)
Constructs the geometry containing points from this geometry but not the other geometry. 
boolean 
disjoint(IGeometry other)
Indicates if the two geometries share no points in common. 
boolean 
disjoint3D(IGeometry pOther)
Indicates if the two geometries share no points in common. 
void 
dropMs()
Sets all the M values to a nonvalid number (NaN). 
void 
dropPointIDs()
Unsets all PointID values without changing awareness. 
void 
dropZs()
Sets all the Z values to a nonvalid number (NaN). 
boolean 
equals(Object o)
Compare this object with another 
IClone 
esri_clone()
Clones the receiver and assigns the result to *clone. 
boolean 
esri_equals(IGeometry other)
Indicates if the two geometries are of the same type and define the same set of points in the plane. 
void 
geoNormalize()
Shifts longitudes, if need be, into a continuous range of 360 degrees. 
void 
geoNormalizeFromLongitude(double longitude)
Normalizes longitudes into a continuous range containing the longitude. 
IGeometry 
getBoundary()
The boundary of this geometry. 
IPoint 
getCentroidEx()
The center of gravity (centroid). 
void 
getClassID(GUID[] pClassID)
getClassID 
static String 
getClsid()
getClsid. 
int 
getDimension()
The topological dimension of this geometry. 
IEnvelope 
getEnvelope()
Creates a copy of this geometry's envelope and returns it. 
int 
getGeometryType()
The type of this geometry. 
int 
getID()
The Point ID attribute. 
double 
getM()
The measure attribute. 
void 
getSizeMax(_ULARGE_INTEGER[] pcbSize)
getSizeMax 
ISpatialReference 
getSpatialReference()
The spatial reference associated with this geometry. 
double 
getX()
The X coordinate. 
double 
getY()
The Y coordinate. 
double 
getZ()
The Z attribute. 
int 
hashCode()
the hashcode for this object 
boolean 
hitTest(IPoint queryPoint,
double searchRadius,
int geometryPart,
IPoint hitPoint,
double[] hitDistance,
int[] hitPartIndex,
int[] hitSegmentIndex,
boolean[] bRightSide)
Locates a part of a geometry closest to a query point. 
void 
interfaceSupportsErrorInfo(GUID riid)
interfaceSupportsErrorInfo 
IGeometry 
intersect(IGeometry other,
int resultDimension)
Constructs the geometry that is the settheoretic intersection of the input geometries. 
boolean 
isChanged()
Indicates if a geometry has been changed (edited, projected, etc). 
void 
isDirty()
isDirty 
boolean 
isEmpty()
Indicates whether this geometry contains any points. 
boolean 
isEqual(IClone other)
Returns TRUE when the receiver and other have the same properties. 
boolean 
isIdentical(IClone other)
Returns TRUE when the receiver and other are the same object. 
boolean 
isKnownSimple()
Indicates whether this geometry is known (or assumed) to be topologically correct. 
boolean 
isMAware()
Indicates whether or not the geometry is aware of and capable of handling Ms. 
boolean 
isMSimple()
Indicates if all the Ms are valid numbers. 
boolean 
isPointIDAware()
Indicates whether or not the geometry is aware of and capable of handling PointIDs. 
boolean 
isPointIDSimple()
Indicates if all PointID values for this geometry are welldefined. 
boolean 
isSimple()
Indicates whether this geometry is known (or assumed) to be topologically correct, after explicitly determining this if the geometry is not already known (or assumed) to be simple. 
boolean 
isZAware()
Indicates whether or not the geometry is aware of and capable of handling Zs. 
boolean 
isZSimple()
Indicates if all the Zs are valid numbers. 
void 
load(IStream pstm)
load 
void 
move(double dx,
double dy)
Moves dx units horizontally and dy units vertically. 
void 
move3D(double dx,
double dy,
double dz)
Moves the object by dx, dy and dz along the x, y, and z axes respectively. 
void 
moveVector(ILine v)
Moves a direction and distance v. 
void 
moveVector3D(IVector3D v)
Moves the object by an offset defined by a 3D vector. 
boolean 
overlaps(IGeometry other)
Indicates if the intersection of the two geometries has the same dimension as one of the input geometries. 
void 
project(ISpatialReference newReferenceSystem)
Projects this geometry into a new spatial reference. 
void 
project5(ISpatialReference newSpatialReference,
int projectionHint)
Same as Project, but with additional parameter projectionHint. 
void 
projectEx(ISpatialReference newReferenceSystem,
int direction,
IGeoTransformation geoTransformation,
boolean bAngularDensify,
double maxSegmentLength,
double maxDeviation)
Projects a geometry, optionally applies a GeoTransformation, and optionally densifies the geometry. 
void 
projectEx5(ISpatialReference newReferenceSystem,
int direction,
ITransformation transformation,
boolean bAngularDensify,
double maxSegmentLength,
double maxDeviation,
int projectionHint)
Same as ProjectEx, but with additional parameter projectionHint. 
IGeometry 
projectToPlane(IPoint planarOrigin,
IVector3D planarPositiveX,
IVector3D planarNorm)
Generates a polygon footprint for the object in an arbitrary plane. 
void 
putCoords(double x,
double y)
Sets the X and Y coordinates. 
void 
putCoordsFromMGRS(String mgrs,
int mode)
Creates the coordinates of a point from the MGRS/USNG description. 
void 
queryClipped(IEnvelope clipperEnvelope,
IGeometry clippedGeometry)
Redefines clippedGeometry to be the intersection of this geometry and the clipping envelope. 
void 
queryClippedDense(IEnvelope clipperEnvelope,
double denseDistance,
IGeometry clippedGeometry)
Redefines clippedGeometry to be the intersection of this geometry and the clipping envelope; densifies lines in the output contributed by the clipping envelope. 
void 
queryCoords(double[] x,
double[] y)
Returns the X and Y coordinates. 
void 
queryEnvelope(IEnvelope outEnvelope)
Copies this geometry's envelope properties into the specified envelope. 
void 
queryNearestPoint(IPoint p,
int extension,
IPoint nearest)
Copies into 'nearest' a point on this geometry nearest to the input point. 
void 
queryNearestPoint3D(IPoint pInP,
int extension,
IPoint pNearest)
Copies into 'nearest' a point on this geometry nearest to the input point. 
void 
queryWKSEnvelope(_WKSEnvelope[] e)
Defines the specified wksenvelope to be the current extent of this geometry in the xy plane. 
void 
readExternal(ObjectInput in)

boolean 
relation(IGeometry other,
String relationDescription)
Indicates if the defined relationship exists. 
double 
returnDistance(IGeometry other)
Returns the minimum distance between two geometries. 
double 
returnDistance3D(IGeometry pOther)
Returns the minimal distance between two geometries. 
IPoint 
returnNearestPoint(IPoint p,
int extension)
Creates and returns a point on this geometry nearest to the input point. 
IPoint 
returnNearestPoint3D(IPoint pInP,
int extension)
Creates and returns a point on this geometry nearest to the input point. 
void 
rotate(IPoint origin,
double rotationAngle)
Rotates about the specified origin point. 
void 
rotateVector3D(IVector3D axis,
double rotationAngle)
Rotates the object about axis defined by the specified vector through an angle measured in radians. 
void 
save(IStream pstm,
int fClearDirty)
save 
void 
scale(IPoint origin,
double sx,
double sy)
Scales about the specified origin using seperate horizonal and vertical scales. 
void 
scale3D(IPoint origin,
double sx,
double sy,
double sz)
Scales the object about the specified origin point. 
void 
serialize(IXMLSerializeData data)
Serializes an object to XML. 
void 
setChanged(boolean isChanged)
Indicates if a geometry has been changed (edited, projected, etc). 
void 
setEmpty()
Removes all points from this geometry. 
void 
setID(int pointID)
The Point ID attribute. 
void 
setM(double m)
The measure attribute. 
void 
setMAware(boolean mAware)
Indicates whether or not the geometry is aware of and capable of handling Ms. 
void 
setPointIDAware(boolean idAware)
Indicates whether or not the geometry is aware of and capable of handling PointIDs. 
void 
setSpatialReferenceByRef(ISpatialReference spatialRef)
The spatial reference associated with this geometry. 
void 
setX(double x)
The X coordinate. 
void 
setY(double y)
The Y coordinate. 
void 
setZ(double z)
The Z attribute. 
void 
setZAware(boolean zAware)
Indicates whether or not the geometry is aware of and capable of handling Zs. 
void 
simplify()
Makes this geometry topologically correct. 
void 
snap()
Snaps ms to the precision of the spatial reference associated with the geometry. 
void 
snapToSpatialReference()
Moves points of this geometry so that they can be represented in the precision of the geometry's associated spatial reference system. 
IGeometry 
symmetricDifference(IGeometry other)
Constructs the geometry that contains points from either but not both input geometries. 
boolean 
touches(IGeometry other)
Indicates if the boundaries of the geometries intersect. 
void 
transform(int direction,
ITransformation transformation)
Applies an arbitrary transformation. 
void 
transform3D(int direction,
ITransformation3D transformation)
Applies an arbitrary 3D transformation. 
IGeometry 
union(IGeometry other)
Constructs the geometry that is the settheoretic union of the input geometries. 
boolean 
within(IGeometry other)
Indicates if this geometry is contained (is within) another geometry. 
void 
writeExternal(ObjectOutput out)

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 Point() throws IOException, UnknownHostException
IOException
 if there are interop problems
UnknownHostException
 if there are interop problemspublic Point(Object obj) throws IOException
Point thePoint = (Point) obj;
obj
to Point
.
obj
 an object returned from ArcGIS Engine or Server
IOException
 if there are interop problemsMethod Detail 

public static String getClsid()
public boolean equals(Object o)
equals
in class Object
public int hashCode()
hashCode
in class Object
public void queryCoords(double[] x, double[] y) throws IOException, AutomationException
queryCoords
in interface IPoint
x
 The x (out: use single element array)y
 The y (out: use single element array)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void putCoords(double x, double y) throws IOException, AutomationException
putCoords
in interface IPoint
x
 The x (in)y
 The y (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public double getX() throws IOException, AutomationException
Returns and Sets the X coordinate of the Point. The X coordinate is the horizontal position of the point.
getX
in interface IPoint
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.IPoint.getZ()
,
IPoint.getM()
,
IPoint.getY()
public void setX(double x) throws IOException, AutomationException
setX
in interface IPoint
x
 The x (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public double getY() throws IOException, AutomationException
Returns and Sets the Y coordinate of the Point. The Y coordinate is the vertical position of the point.
getY
in interface IPoint
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.IPoint.getZ()
,
IPoint.getM()
,
IPoint.getX()
public void setY(double y) throws IOException, AutomationException
setY
in interface IPoint
y
 The y (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public double getZ() throws IOException, AutomationException
Returns or Sets the Z attribute on the Point. Although the Z attribute refers to the 3Dimensional depth of the point, the point still spatially exists in only 2Dimensions with a Z attribute. Further, the point must be ZAware to make use of the Z attribute.
getZ
in interface IPoint
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.IPoint.getZ()
,
IZAware
,
IPoint.getM()
,
IZCollection
,
IZ
,
IPoint.getX()
,
IPoint.getY()
public void setZ(double z) throws IOException, AutomationException
setZ
in interface IPoint
z
 The z (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public double getM() throws IOException, AutomationException
Returns or Sets the M attribute on the Point. The M attribute refers to the Point's measure (similar to an address). The point must be MAware to make use of the M attribute.
getM
in interface IPoint
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.IPoint.getZ()
,
IPoint.getM()
,
IMSegmentation
,
IMSegmentation2
,
IMCollection
,
IMAware
,
IPoint.getX()
,
IPoint.getY()
public void setM(double m) throws IOException, AutomationException
setM
in interface IPoint
m
 The m (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public int getID() throws IOException, AutomationException
Returns or Sets the ID attribute of the Point. The ID attribute is a numeric label, but does not serve any computational purposes. The Point must be PointIDAware to make use of the ID attribute.
IPoint pPoint
pPoint = new Point();
pPoint.putCoords( 100, 100);
IPointIDAware pIDA
pIDA = new IPointIDAwareProxy(pPoint);
pIDA.pointIDAware(true);
pPoint.setID(10);
getID
in interface IPoint
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void setID(int pointID) throws IOException, AutomationException
setID
in interface IPoint
pointID
 The pointID (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void constrainDistance(double constraintRadius, IPoint anchor) throws IOException, AutomationException
Sets the base Point to a location a specified distance from the input anchor Point along the line between the two points. ConstrainDistance is used by the editor to fix the distance between an anchor point and an input Point. Thus, the input to be created must lie on the circumference defined by the anchor point and the fixed distance radius with the angle determined by the user.
ConstrainDistance
constrainDistance
in interface IPoint
constraintRadius
 The constraintRadius (in)anchor
 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 constrainAngle(double constraintAngle, IPoint anchor, boolean allowOpposite) throws IOException, AutomationException
Projects the base Point to to the nearest point on the line defined by an input anchor point and input angle. ConstrainAngle is used by the editor to force a newly created Point to be on the line between a fixed point and a specified angle.
ContrainAngle
constrainAngle
in interface IPoint
constraintAngle
 The constraintAngle (in)anchor
 A reference to a com.esri.arcgis.geometry.IPoint (in)allowOpposite
 The allowOpposite (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.IPoint.constrainDistance(double, com.esri.arcgis.geometry.IPoint)
public int compare(IPoint otherPoint) throws IOException, AutomationException
Compares the location and attributes of the base point with those of the input point to determine a relative ordering of the two points. Compares point properties in the following order: X, Y, M, Z, and ID. Returns 1 if the base point possesses the first greater property, and returns 1 if the input point possesses the first greater property. This method takes the resolution of the spatial reference into account.
The method should not be used in order to determine equality of two points. Use IRelationalOperator::Equals or IClone::IsEqual. At 9.2, this method uses the resolution property of the point's spatial reference in order to determine (x,y) coordinate ordering. At 9.1, an untoleranced (exact) comparison was performed.
compare
in interface IPoint
otherPoint
 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 int getGeometryType() throws IOException, AutomationException
esriGeometryNull = 0
esriGeometryPoint = 1
esriGeometryMultipoint = 2
esriGeometryPolyline = 3
esriGeometryPolygon = 4
esriGeometryEnvelope = 5
esriGeometryPath = 6
esriGeometryAny = 7
esriGeometryMultiPatch = 9
esriGeometryRing = 11
esriGeometryLine = 13
esriGeometryCircularArc = 14
esriGeometryBezier3Curve = 15
esriGeometryEllipticArc = 16
esriGeometryBag = 17
esriGeometryTriangleStrip = 18
esriGeometryTriangleFan = 19
esriGeometryRay = 20
esriGeometrySphere = 21
getGeometryType
in interface IGeometry
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public int getDimension() throws IOException, AutomationException
Returns the dimension of the geometry object based on the geometry's type.
getDimension
in interface IGeometry
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public ISpatialReference getSpatialReference() throws IOException, AutomationException
Returns and sets the Spatial Reference in which the geometry exists. If the spatial reference has not been set the property will return an empty ISpatialReference instance.
getSpatialReference
in interface IGeometry
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void setSpatialReferenceByRef(ISpatialReference spatialRef) throws IOException, AutomationException
setSpatialReferenceByRef
in interface IGeometry
spatialRef
 A reference to a com.esri.arcgis.geometry.ISpatialReference (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public boolean isEmpty() throws IOException, AutomationException
IsEmpty returns TRUE when the Geometry object does not contain geometric information beyond its original initialization state. An object may be returned to its original initialization (IsEmpty = TRUE) state using SetEmpty.
isEmpty
in interface IGeometry
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void setEmpty() throws IOException, AutomationException
SetEmpty returns the Geometry to its original initialization state by releasing all data referenced by the Geometry.
setEmpty
in interface IGeometry
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void queryEnvelope(IEnvelope outEnvelope) throws IOException, AutomationException
Returns the unique Envelope that binds the Geometry object. This is the smallest Envelope that Contains the object.
Note: The output geometry must be cocreated prior to the query. The output geometry is not cocreated by the method; it is populated. This can be used in performance critical situations. For example, creating the geometry only once outside a loop and use the query method could improve performance.
queryEnvelope
in interface IGeometry
outEnvelope
 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 IEnvelope getEnvelope() throws IOException, AutomationException
Returns the unique Envelope that binds the Geometry object. This is the smallest Envelope that Contains the object.
getEnvelope
in interface IGeometry
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void project(ISpatialReference newReferenceSystem) throws IOException, AutomationException
To Project, the geometry needs to have a Spatial Reference set, and not have an UnknownCoordinateSystem. The new spatial reference system passed to the method defines the output coordinate system. If either spatial reference is Unknown, the coordinates are not changed. The Z and measure values are not changed by the Project method.
A geometry is not densified before it is projected. This can lead to the output geometries not reflecting the 'true' shape in the new coordinate system. A straight line in one coordinate system is not necessarily a straight line in a different coordinate system. Use IGeometry2::ProjectEx if you want to densify the geometries while they are projected.
The Project method must be applied on highlevel geometries only. HighLevel geometries are point, multipoint, polyline and polygon. To use this method with lowlevel geometries such as segments (Line, Circular Arc, Elliptic Arc, Bézier Curve), paths or rings, they must be wrapped into highlevel geometry types.
If a geometry is projected to a projected coordinate system that can't represent the geographic area where the geometry is located (or if trying to move an xy coordinate from outside the projected coordinate system back into geographic), the geometry will be set to empty.
Note: This method can only be called upon the top level geometries (Points, Multipoints, Polylines and Polygons). If the from/to spatial references have different geographic coordinate systems, the Project method looks for a GeoTransformationsOperationSet. If the set of Geotransformations is present in memory, Project will use it to perform a geographic/datum Transformation. To use a specific geotransformation, use the IGeometry2::ProjectEx method.
project
in interface IGeometry
newReferenceSystem
 A reference to a com.esri.arcgis.geometry.ISpatialReference (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void snapToSpatialReference() throws IOException, AutomationException
snapToSpatialReference
in interface IGeometry
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void geoNormalize() throws IOException, AutomationException
geoNormalize
in interface IGeometry
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void geoNormalizeFromLongitude(double longitude) throws IOException, AutomationException
geoNormalizeFromLongitude
in interface IGeometry
longitude
 The longitude (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public boolean isMAware() throws IOException, AutomationException
Returns or sets the M Awareness state of the geometry object. If MAware is TRUE, then the object will recognize that it has M attributes and perform operations on them as necessary. If MAware is FALSE, the object will ignore Ms while performing operations.
isMAware
in interface IMAware
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void setMAware(boolean mAware) throws IOException, AutomationException
setMAware
in interface IMAware
mAware
 The mAware (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public boolean isMSimple() throws IOException, AutomationException
MSimple is TRUE if none of the M values held by the geometry object are NaN. If any of the Ms within the object are NaN, MSimple is FALSE.
isMSimple
in interface IMAware
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void dropMs() throws IOException, AutomationException
Resets all of the current M values held by the geometry object back to NaN. MAware does not change.
dropMs
in interface IMAware
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public boolean isZAware() throws IOException, AutomationException
Returns or sets the Z Awareness state of the geometry object. If ZAware is TRUE, then the object will recognize that it has Z attributes and perform operations on them as necessary. If ZAware is FALSE, the object will ignore Zs while performing operations. ZAware should only be set to TRUE when all of the Zs are not NaN.
Use ZAware = True when you want geometries to retain Z values during geometry operations.
isZAware
in interface IZAware
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void setZAware(boolean zAware) throws IOException, AutomationException
setZAware
in interface IZAware
zAware
 The zAware (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public boolean isZSimple() throws IOException, AutomationException
ZSimple is TRUE if none of the Z values held by the geometry object are NaN. If any of the Zs within the object are NaN, ZSimple is FALSE.
isZSimple
in interface IZAware
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void dropZs() throws IOException, AutomationException
Resets all of the current Z values held by the geometry object back to NaN. ZAware does not change.
dropZs
in interface IZAware
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public boolean isPointIDAware() throws IOException, AutomationException
Returns or sets the PointID Awareness state of the geometry object. If PointIDAware is TRUE, then the object will recognize that it has PointID attributes and perform operations on them as necessary. If PointIDAware is FALSE, the object will ignore PointIDs while performing operations.
isPointIDAware
in interface IPointIDAware
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void setPointIDAware(boolean idAware) throws IOException, AutomationException
setPointIDAware
in interface IPointIDAware
idAware
 The idAware (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public boolean isPointIDSimple() throws IOException, AutomationException
PointIDSimple is TRUE when all of the PointIDs are well defined (not equal to 0). If any PointIDs equal 0, PointIDSimple is FALSE.
isPointIDSimple
in interface IPointIDAware
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void dropPointIDs() throws IOException, AutomationException
Resets all PointID values to there initial value of 0. PointIDAware does not change.
dropPointIDs
in interface IPointIDAware
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void projectEx(ISpatialReference newReferenceSystem, int direction, IGeoTransformation geoTransformation, boolean bAngularDensify, double maxSegmentLength, double maxDeviation) throws IOException, AutomationException
By default, ProjectEx will not densify geometries as they are projected. This can lead to the output geometries not reflecting the 'true' shape in the new coordinate system. A straight line in one coordinate system is not necessarily a straight line in a different coordinate system. Set the bAngularDensify parameter if you want to densify the geometries while they are projected.
projectEx
in interface IGeometry2
newReferenceSystem
 A reference to a com.esri.arcgis.geometry.ISpatialReference (in)direction
 A com.esri.arcgis.geometry.esriTransformDirection constant (in)geoTransformation
 A reference to a com.esri.arcgis.geometry.IGeoTransformation (in)bAngularDensify
 The bAngularDensify (in)maxSegmentLength
 The maxSegmentLength (in)maxDeviation
 The maxDeviation (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void queryWKSEnvelope(_WKSEnvelope[] e) throws IOException, AutomationException
The QueryWKSEnvelope method returns a WKSEnvelope structure corresponding to the envelope of the geometry. Use that method to quickly get the XMin, XMax, YMin and YMax values.
queryWKSEnvelope
in interface IGeometry3
e
 A Structure: com.esri.arcgis.system._WKSEnvelope (A com.esri.arcgis.system._WKSEnvelope COM typedef) (out: use single element array)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public boolean isChanged() throws IOException, AutomationException
The Changed method returns whether or not the geometry has been modified. If the geometry always stays in memory that method only returns 'false' immediately after its creation. However if the shape came from disk the Changed method will return 'false' until de geometry is modified in memory.
isChanged
in interface IGeometry4
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void setChanged(boolean isChanged) throws IOException, AutomationException
setChanged
in interface IGeometry4
isChanged
 The isChanged (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void project5(ISpatialReference newSpatialReference, int projectionHint) throws IOException, AutomationException
To Project, the geometry needs to have a Spatial Reference set, and not have an UnknownCoordinateSystem. The new spatial reference system passed to the method defines the output coordinate system. If either spatial reference is Unknown, the coordinates are not changed. The Z and measure values are not changed by the Project method.
A geometry is not densified before it is projected. This can lead to the output geometries not reflecting the 'true' shape in the new coordinate system. A straight line in one coordinate system is not necessarily a straight line in a different coordinate system. Use IGeometry2::ProjectEx if you want to densify the geometries while they are projected.
The projectionHint parameter contains information about whether a geometry will cross the coordinate system horizons. If it doesn't, parts of the code that check this and intersect the geometry with the horizons can be omitted. This can dramatically improve performance. Use ISpatialReference3::ProjectionHint to initialize this parameter.
project5
in interface IGeometry5
newSpatialReference
 A reference to a com.esri.arcgis.geometry.ISpatialReference (in)projectionHint
 The projectionHint (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void projectEx5(ISpatialReference newReferenceSystem, int direction, ITransformation transformation, boolean bAngularDensify, double maxSegmentLength, double maxDeviation, int projectionHint) throws IOException, AutomationException
The projectionHint parameter contains information about whether a geometry will cross the coordinate system horizons. If it doesn't, parts of the code that check this and intersect the geometry with the horizons can be omitted. This can dramatically improve performance. Use ISpatialReference3::ProjectionHint to initialize this parameter.
By default, ProjectEx will not densify geometries as they are projected. This can lead to the output geometries not reflecting the 'true' shape in the new coordinate system. A straight line in one coordinate system is not necessarily a straight line in a different coordinate system. Set the bAngularDensify parameter if you want to densify the geometries while they are projected.
projectEx5
in interface IGeometry5
newReferenceSystem
 A reference to a com.esri.arcgis.geometry.ISpatialReference (in)direction
 A com.esri.arcgis.geometry.esriTransformDirection constant (in)transformation
 A reference to a com.esri.arcgis.geometry.ITransformation (in)bAngularDensify
 The bAngularDensify (in)maxSegmentLength
 The maxSegmentLength (in)maxDeviation
 The maxDeviation (in)projectionHint
 The projectionHint (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public IPoint getCentroidEx() throws IOException, AutomationException
getCentroidEx
in interface IGeometry5
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void move(double dx, double dy) throws IOException, AutomationException
Moves the Geometry dX units along the XAxis and dY units along the YAxis. Only changes the position of the Geometry without altering any of the other characteristics. Move is a spatial offset.
move
in interface ITransform2D
dx
 The dx (in)dy
 The dy (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void moveVector(ILine v) throws IOException, AutomationException
Moves the Geometry dX units along the XAxis and dY units along the YAxis, where dX and dY are calculated from the input vector Line. Only the Length and Angle of the vector affect the transformation. The location of the vector does not change the transformation. Only changes the position of the Geometry without altering any of the other characteristics. Move is a spatial offset.
moveVector
in interface ITransform2D
v
 A reference to a com.esri.arcgis.geometry.ILine (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void scale(IPoint origin, double sx, double sy) throws IOException, AutomationException
Stretches the Geometry a factor of sX along the XAxis and a factor of sY along the YAxis (where sX is the ratio of Old Width to New Width, and sY is the ratio of Old Height to New Height). The Origin point is the reference Point from which the transformation is performed (Regardless of the location of the Origin point, the Geometry resulting from the transformation is the same, except for a positional offset). The Origin is the only point in the transformation guaranted to remain in the same location after the transformation is complete.
Note: Caution must be taken when scaling a CircularArc or a geometry containing CircularArc segments. Unless Abs(ScaleX) = Abs(ScaleY), the resulting CircularArcs will not retain the characteristics of the original geometry (since they remain CircularArcs).
scale
in interface ITransform2D
origin
 A reference to a com.esri.arcgis.geometry.IPoint (in)sx
 The sx (in)sy
 The sy (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void rotate(IPoint origin, double rotationAngle) throws IOException, AutomationException
Rotate performs an angular transform (rotation) on the Geometry. The Origin is the only point in the transformation guaranteed to remain in the same location after the transformation is performed. Regardless of the Origin, the transformed Geometry is the same, except for a positional offset. The RotationAngle is measured in radians.
An Envelope cannot be Rotated.
rotate
in interface ITransform2D
origin
 A reference to a com.esri.arcgis.geometry.IPoint (in)rotationAngle
 The rotationAngle (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void transform(int direction, ITransformation transformation) throws IOException, AutomationException
transform
in interface ITransform2D
direction
 A com.esri.arcgis.geometry.esriTransformDirection constant (in)transformation
 A reference to a com.esri.arcgis.geometry.ITransformation (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void move3D(double dx, double dy, double dz) throws IOException, AutomationException
move3D
in interface ITransform3D
dx
 The dx (in)dy
 The dy (in)dz
 The dz (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void moveVector3D(IVector3D v) throws IOException, AutomationException
moveVector3D
in interface ITransform3D
v
 A reference to a com.esri.arcgis.geometry.IVector3D (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void scale3D(IPoint origin, double sx, double sy, double sz) throws IOException, AutomationException
scale3D
in interface ITransform3D
origin
 A reference to a com.esri.arcgis.geometry.IPoint (in)sx
 The sx (in)sy
 The sy (in)sz
 The sz (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void rotateVector3D(IVector3D axis, double rotationAngle) throws IOException, AutomationException
The angle of rotation must be in radians. To convert to radians from decimal degrees, multiply by PI/180.
rotateVector3D
in interface ITransform3D
axis
 A reference to a com.esri.arcgis.geometry.IVector3D (in)rotationAngle
 The rotationAngle (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void transform3D(int direction, ITransformation3D transformation) throws IOException, AutomationException
transform3D
in interface ITransform3D
direction
 A com.esri.arcgis.geometry.esriTransformDirection constant (in)transformation
 A reference to a com.esri.arcgis.geometry.ITransformation3D (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public IGeometry projectToPlane(IPoint planarOrigin, IVector3D planarPositiveX, IVector3D planarNorm) throws IOException, AutomationException
projectToPlane
in interface ITransform3D
planarOrigin
 A reference to a com.esri.arcgis.geometry.IPoint (in)planarPositiveX
 A reference to a com.esri.arcgis.geometry.IVector3D (in)planarNorm
 A reference to a com.esri.arcgis.geometry.IVector3D (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void constructAlong(ICurve curve, int extension, double distance, boolean asRatio) throws IOException, AutomationException
If the Distance parameter is less than zero, or greater than the length of the curve (when asRatio is false), or greater than one (when asRatio is true), then the value of the Extension parameter is used to determine the coordinates of the constructed point. In these cases, the point can be placed somewhere along an embedding geometry, or somewhere along a tangent geometry.
The embedding geometry of a straight line segment is a straight line extending infinitely in both directions. The embedding geometry of a circular arc is a complete circle. The embedding geometry of an elliptic arc is a complete ellipse. A bezier curve has no embedding geometry.
A tangent geometry is always a ray (a straight line extending infinitely in one direction) tangent to the input curve at either its from (start) or to (end) points.
Possible values for the Extension parameter are:

esriNoExtension The constructed point will always be on the input curve. A distance < 0 will pin the constructed point to the location of the input curve's from point. A distance > the curve length (or > 1 when asRatio is true) will pin the location to the curve's to point.
esriExtendTangentAtFrom If the distance parameter is < 0 then the point is constructed along a ray tangent to the start point of the curve, in a direction away from the curve.
esriExtendTangentAtTo If the distance parameter is greater than the length of the input curve (or > 1 when asRatio is true), then the constructed point is placed along a ray tangent to the end point of the curve, in a direction away from the curve.
esriExtendEmbeddedAtFrom Similar to the tangent option, but uses the embedding geometry instead of the tangent lines.
esriExtendEmbeddedAtTo Similar to the tangent option, but uses the embedding geometry instead of the tangent lines.
esriExtendEmbedded The point is constructed based on either the start or end points of the curve.
esriExtendTangents The point is tangential extended from the start or endpoint of the curve.
These values can be combined using the VB Or operator, or the C++ bitwise OR operator.
Example 1: esriExtendTangentAtFrom Or esriExtendTangentAtTo
Instead of using esriExtendTangents
you could use esriExtendTangentAtFrom Or esriExtendTangentAtTo.
This would allow the point to be constructed anywhere along infinte straight lines, beginning from either the start or end of the curve, regardless of whether the distance parameter was less than 0, or greater than the length of the input curve (or > 1 when asRatio is true).
constructAlong
in interface IConstructPoint
curve
 A reference to a com.esri.arcgis.geometry.ICurve (in)extension
 A com.esri.arcgis.geometry.esriSegmentExtension constant (in)distance
 The distance (in)asRatio
 The asRatio (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void constructAngleDistance(IPoint p, double inAngle, double distance) throws IOException, AutomationException
The ConstructAngleDistance method, given a point (p), construct another point at an angle (inangle) and a distance(distance).
Angle in radians and distance in map units. The angle is measured counterclockwise from the horizontal line and can be negative. If the distance is negative then the opposite direction is assumed (same as angle + PI).
constructAngleDistance
in interface IConstructPoint
p
 A reference to a com.esri.arcgis.geometry.IPoint (in)inAngle
 The inAngle (in)distance
 The distance (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.IConstructPoint.constructAlong(com.esri.arcgis.geometry.ICurve, int, double, boolean)
public void constructDeflection(ILine baseLine, double distance, double inAngle) throws IOException, AutomationException
The ConstructDeflection method, given a line (baseline), creates a new point at a distance (distance) and at an angle (inAngle).
constructDeflection
in interface IConstructPoint
baseLine
 A reference to a com.esri.arcgis.geometry.ILine (in)distance
 The distance (in)inAngle
 The inAngle (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void constructDeflectionIntersection(ILine baseLine, double startAngle, double endAngle, boolean onRightSide) throws IOException, AutomationException
constructDeflectionIntersection
in interface IConstructPoint
baseLine
 A reference to a com.esri.arcgis.geometry.ILine (in)startAngle
 The startAngle (in)endAngle
 The endAngle (in)onRightSide
 The onRightSide (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void constructThreePointResection(IPoint point1, double angleP1P2, IPoint point2, double angleP2P3, IPoint point3, double[] arcAngle) throws IOException, AutomationException
The ConstructThreePointResection method constructs a new point given three points and two signed view angles. It finds the viewpoints from which the two point pairs are viewed at the given angles. When both angles are equal to pi/2 radians, there is only one solution; otherwise there can be up to four solutions. A positive angle indicates that the viewpoint is to be on the right hand side of the line between the corresponding points; a negative angle places the resulting point on the left. There may not be a feasible solution for the given input, in which case the resulting point is empty. The quality of the solution is given by the arcAngle parameter. The smaller the angle the less stable the solution. The returned angle is between 0 and pi/2.
Given three points and two angles measured from the constructed point.
Note that there is no unique solution if all three points are on the same circle.
constructThreePointResection
in interface IConstructPoint
point1
 A reference to a com.esri.arcgis.geometry.IPoint (in)angleP1P2
 The angleP1P2 (in)point2
 A reference to a com.esri.arcgis.geometry.IPoint (in)angleP2P3
 The angleP2P3 (in)point3
 A reference to a com.esri.arcgis.geometry.IPoint (in)arcAngle
 The arcAngle (out: use single element array)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void constructOffset(ICurve curve, int extension, double distance, boolean asRatio, double offset) throws IOException, AutomationException
A positive Offset distance will create a point on the right side of the curve and a negative offset will create a point on the left side of the curve.
Set the asRatio flag to be True if you want the distance to be a ratio of the curve length. If set to True, then a distance of 0.5 will be equal to half of the curve length (i.e. 50%).
constructOffset
in interface IConstructPoint
curve
 A reference to a com.esri.arcgis.geometry.ICurve (in)extension
 A com.esri.arcgis.geometry.esriSegmentExtension constant (in)distance
 The distance (in)asRatio
 The asRatio (in)offset
 The offset (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void constructParallel(ISegment segment, int extension, IPoint start, double distance) throws IOException, AutomationException
ConstructParallel constructs a Point a specified distance from the input point in the direction parallel to the tangent of the nearest point on the extended input segment.
constructParallel
in interface IConstructPoint
segment
 A reference to a com.esri.arcgis.geometry.ISegment (in)extension
 A com.esri.arcgis.geometry.esriSegmentExtension constant (in)start
 A reference to a com.esri.arcgis.geometry.IPoint (in)distance
 The distance (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void constructAngleBisector(IPoint from, IPoint through, IPoint to, double distance, boolean useAcuteAngle) throws IOException, AutomationException
Constructs a Point a specified Distance along the line which bisects the Angle formed by the right side of the three input points. If the right side angle is smaller, the constructed line along which the Point is constructed will always bisect this angle, regardless of the value of bUseSmallerAngle. However, if the right side angle is larger, and bUseSmallerAngle is TRUE, then the Point will be on the line constructed which bisects the smaller angle (left side) instead of the right side angle.
The method uses a vector geometry to calculate the point. The Smaller Angle is the angle less than PI.
If From , To and Through points are all on a straight line , the point is calculated perpendicular (to the right) of the line.
constructAngleBisector
in interface IConstructPoint
from
 A reference to a com.esri.arcgis.geometry.IPoint (in)through
 A reference to a com.esri.arcgis.geometry.IPoint (in)to
 A reference to a com.esri.arcgis.geometry.IPoint (in)distance
 The distance (in)useAcuteAngle
 The useAcuteAngle (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void constructPerpendicular(ISegment base, int extension, IPoint p, double distance, boolean bUseLineOrientation) throws IOException, AutomationException
ConstructPerpendicular constructs a Point a specified distance from the input point in the direction parallel to the normal (perpendicular to the tangent) of the nearest point on the extended input segment.
constructPerpendicular
in interface IConstructPoint
base
 A reference to a com.esri.arcgis.geometry.ISegment (in)extension
 A com.esri.arcgis.geometry.esriSegmentExtension constant (in)p
 A reference to a com.esri.arcgis.geometry.IPoint (in)distance
 The distance (in)bUseLineOrientation
 The bUseLineOrientation (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void constructAngleIntersection(IPoint p1, double angle1, IPoint p2, double angle2) throws IOException, AutomationException
constructAngleIntersection
in interface IConstructPoint
p1
 A reference to a com.esri.arcgis.geometry.IPoint (in)angle1
 The angle1 (in)p2
 A reference to a com.esri.arcgis.geometry.IPoint (in)angle2
 The angle2 (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void constructAverage(IPointCollection points, int attributeType) throws IOException, AutomationException
If attributeType is esriAttributeNone then the average point location is computed; otherwise the attribute specified by attributeType serves as a weight. Points whose weight attribute is NaN are ignored (a weight of 0 has a similar affect). The resulting point will have the (weighted) average for all their attributes. However this does not apply to ID's; no average is calculated for them in any case; but thay can be used as weight.
Only the following attributeType values are permitted: esriAttributeNone, esriAttributeZ, esriAttributeM, esriAttributeID.
constructAverage
in interface IConstructPoint2
points
 A reference to a com.esri.arcgis.geometry.IPointCollection (in)attributeType
 A com.esri.arcgis.geometry.esriGeometryAttributes constant (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public boolean esri_equals(IGeometry other) throws IOException, AutomationException
esri_equals
in interface IRelationalOperator
other
 A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public boolean touches(IGeometry other) throws IOException, AutomationException
Two geometries are said to touch when the intersection of the geometries is nonempty, but the intersection of their interiors is empty. Touches is a Clementini operator. For example, a point touches a polyline only if the point is coincident with one of the polyline end points.
Touches examples. Only "true" relationships are showed in this picture.
Only geometries that support the IRelationalOperator interface can be used as input geometries.
Touch does not apply for point/point comparison.
If either one of the two geometries is empty, the geometries are not touched.
touches
in interface IRelationalOperator
other
 A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public boolean contains(IGeometry other) throws IOException, AutomationException
The base geometry contains the comparison geometry (other) if the comparison geometry is a subset of the base geometry and the intersection of their interiors is not empty. Therefore a polygon does not contain any part of its 1D boundary. Contains is the opposite operator of Within.
Only geometries that support the IRelationalOperator interface can be used as input geometries.
If geometry1 Contains geometry2, then geometry2 is Within geometry1.
An empty geometry does not contain another geometry. On the other hand, an empty geometry is contained in another geometry, unless the other geometry is empty.
Contains examples. Only "true" relationships are showed in this picture.
contains
in interface IRelationalOperator
other
 A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public boolean within(IGeometry other) throws IOException, AutomationException
The base geometry is within the comparison geometry if the base geometry is the intersection of the geometries and the intersection of their interiors is not empty. Within is a Clementini operator. Within is the opposite operator of contains.
Only geometries that support the IRelationalOperator interface can be used as input geometries.
If geometry1 is Within geometry2, then geometry2 Contains geometry1.
An empty geometry is within another geometry, unless the other geometry is empty.
Within examples. Only "true" relationships are showed in this picture.
within
in interface IRelationalOperator
other
 A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public boolean disjoint(IGeometry other) throws IOException, AutomationException
Two geometries are disjoint if their intersection is empty. Two geometries intersect if disjoint is "false". Disjoint is a Clementini operator.
Only geometries that support the IRelationalOperator interface can be used as input geometries.
Two geometries are disjoint if either one is empty.
Disjoint example. Only "true" relationships are showed in this picture.
disjoint
in interface IRelationalOperator
other
 A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public boolean crosses(IGeometry other) throws IOException, AutomationException
Two polylines cross if they share only points in common, at least one of which is not an endpoint. A polyline and an polygon cross if they share a polyline in common on the interior of the polygon which is not equivalent to the entire polyline. Cross is a Clementini operator.
Only geometries that support the IRelationalOperator interface can be used as input geometries.
Cross only applies to polyline/polyline, polyline/polygon, or polygon/polyline relations.
If either one of the geometries is empty, the geometries do not cross.
Crosses examples. Only "true" relationships are showed in this picture.
crosses
in interface IRelationalOperator
other
 A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public boolean overlaps(IGeometry other) throws IOException, AutomationException
Two geometries overlap if the region of their intersection is of the same dimension as the geometries involved and is not equivalent to either of the geometries. Overlaps is a Clementini operator.
Only geometries that support the IRelationalOperator interface can be used as input geometries.
Overlaps only applies to polyline/polyline, polygon/polygon and multipoint/multipoint relations.
Two geometries do not overlap if either one is empty.
Overlaps examples. Only "true" relationships are showed in this picture.
overlaps
in interface IRelationalOperator
other
 A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public boolean relation(IGeometry other, String relationDescription) throws IOException, AutomationException
Relation allows a general relation defined using the Shape Comparison Language to be determined between two input geometries. The Shape Comparison Language is based on the CalculusBased Method (CBM), as described and defined by Clementini and Felice, but has some extensions specific to working with vertexbased geometries and is fully described in the Technical Documents section of the ArcObjects Developer Help. Please refer to the Shape Comparison Language documentation for proper syntax and available functionality.
Note that at the current release, Relation only operates with straight lines.
Here is a VBA example of using the "RELATE" function to detect overlapping polylines. It assumes two polyline features are selected. G1 and G2 are placeholders for, in this example, the VBA variables r1 and r2.
Option Explicit
Public Sub overlapstest()
Dim ef As IEnumFeature
Dim d As IMxDocument
Set d = ThisDocument
Set ef = d.FocusMap.FeatureSelection
Dim r1 As IRelationalOperator, r2 As IRelationalOperator
Set r1 = ef.Next.Shape
Set r2 = ef.Next.Shape
Debug.Print "relation:", r1.Relation(r2, "RELATE(G1, G2, ""1********"")")
End Sub
relation
in interface IRelationalOperator
other
 A reference to a com.esri.arcgis.geometry.IGeometry (in)relationDescription
 The relationDescription (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void queryNearestPoint(IPoint p, int extension, IPoint nearest) throws IOException, AutomationException
Queries the nearest point on a geometry to the input point. Depending on the method of segment extension, the nearest point can also be found on an extension of the geometry.
queryNearestPoint
in interface IProximityOperator
p
 A reference to a com.esri.arcgis.geometry.IPoint (in)extension
 A com.esri.arcgis.geometry.esriSegmentExtension constant (in)nearest
 A reference to a com.esri.arcgis.geometry.IPoint (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.esriSegmentExtension
,
IProximityOperator.returnNearestPoint(com.esri.arcgis.geometry.IPoint, int)
public IPoint returnNearestPoint(IPoint p, int extension) throws IOException, AutomationException
Finds and returns the nearest point on a geometry to the input point. Depending on the method of segment extension, the nearest point can also be found on an extension of the geometry.
returnNearestPoint
in interface IProximityOperator
p
 A reference to a com.esri.arcgis.geometry.IPoint (in)extension
 A com.esri.arcgis.geometry.esriSegmentExtension constant (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.esriSegmentExtension
,
IProximityOperator.queryNearestPoint(com.esri.arcgis.geometry.IPoint, int, com.esri.arcgis.geometry.IPoint)
public double returnDistance(IGeometry other) throws IOException, AutomationException
Returns the minimum distance between two geometries. If the geometries intersect, the minimum distance is 0. Only returns the distance, and not the nearest points.
The geometry combinations which can be used with ReturnDistance are:
Point: Point, MultiPoint, Envelope, Polyline, Polygon, Line, CircularArc, EllipticArc, BezierCurve.
Multipoint: Point, MultiPoint, Envelope, Polyline, Polygon.
Envelope: Point, MultiPoint, Envelope, Line, CircularArc, EllipticArc, BezierCurve, PolyLine, Polygon.
PolyLine: Point, Multipoint, Envelope, PolyLine, Polygon.
Polygon: Point, Multipoint, Envelope, PolyLine, Polygon.
Line: Point, Envelope, Line, CircularArc, EllipticArc, BezierCurve.
CircularArc: Point, Envelope, Line, CircularArc, EllipticArc (not implemented yet), BezierCurve.
EllipticArc: Point, Envelope, Line, CircularArc (not implemented yet), EllipticArc (not implemented yet), BezierCurve (not implemented yet).
BezierCurve: Point, Envelope, Line, CircularArc, EllipticArc (not implemented yet), BezierCurve.
Note: To get the distance between a segment (Line, CircularArc, EllipticArc, BezierCurve) and a MultiPoint, PolyLine or Polygon, add that segment to a PolyLine.
returnDistance
in interface IProximityOperator
other
 A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public boolean isSimple() throws IOException, AutomationException
Returns TRUE if the geometry is topologically Simple (refer to the discussion for the Simplify method). If the geometry is not Simple, it may be necessary to call Simplify to enforce topological consistency. Editing a geometry can change the IsSimple state of the geometry.
ITopologicalOperator methods must be applied on highlevel geometries only. HighLevel geometries are point, multipoint, polyline and polygon. To use this method with lowlevel geometries such as segments (Line, Circular Arc, Elliptic Arc, Bézier Curve), paths or rings, they must be wrapped into highlevel geometries types.
The xy cluster tolerance value of the geometry's associated spatial reference is used by this method. If the goal of this method is to determine if a geometry can be persisted in an sde (or other integerbased) layer without alteration, you may wish to use the minimum xy cluster tolerance value (ISpatialReferenceTolerance::SetMinimumXYTolerance) before applying this method (don't forget to set it back).
This method does not support GeometryBags.
isSimple
in interface ITopologicalOperator
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public boolean isKnownSimple() throws IOException, AutomationException
Returns TRUE when the geometry is aware that it is Simple. IsKnownSimple may return FALSE even if the geometry is simple as long as the geometry is not aware of its IsSimple state. Calling either IsSimple or Simplify makes the IsSimple state known to the geometry. Topologically altering the geometry makes the IsKnownSimple state FALSE until the IsSimple state is again checked.
Here is the status of the IsKnownSimple flag in some common situations:
IsKnownSimple = 'False'
 A nonempty newly created geometry. For example, creating a polygon using IPointCollection sets the flag IsKnownSimple = 'false' on that geometry.
 Geometry after projection (IGeometry::Project )
 Geometry after generalization (IPolycurve::Generalize ) or smoothing(IPolycurve::Smooth )

IsKnownSimple = 'True'
 A geometry coming directly from a feature class
 An empty geometry
 Output geometry of any method on ITopologicalOperator

This method does not support GeometryBags.
isKnownSimple
in interface ITopologicalOperator
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void simplify() throws IOException, AutomationException
Simplify permanently alters the input geometry, making its definition "topologically legal" with respect to its geometry type:
The XY tolerance property of the geometry's associated spatial reference is used during the simplify operation for polylines and polygons.
This method first looks at the ITopologicalOperator::IsKnownSimple flag before starting processing. If the flag is 'true' then operation is interrupted and the geometry is considered simple. If the flag is 'false' then the geometry consistency is checked and the geometry is updated as needed.
ITopologicalOperator methods must be applied on highlevel geometries only. HighLevel geometries are point, multipoint, polyline and polygon. To use this method with lowlevel geometries such as segments (Line, Circular Arc, Elliptic Arc, Bézier Curve), paths or rings, they must be wrapped into highlevel geometries types.
simplify
in interface ITopologicalOperator
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public IGeometry buffer(double distance) throws IOException, AutomationException
The buffer distance is in the same units as the source shape that is being buffered.
A negative distance can be specified to produce a buffer inside the original polygon. This cannot be used with polyline. ITopologicalOperator methods must be applied on toplevel geometries only. TopLevel geometries are point, multipoint, polyline and polygon. To use this method with segments (Line, Circular Arc, Elliptic Arc, Bézier Curve), paths or rings, they must be wrapped with a toplevel type.
buffer
in interface ITopologicalOperator
distance
 The distance (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public IGeometry convexHull() throws IOException, AutomationException
The ConvexHull of a geometry is the minimal bounding polygon such that all outer angles are convex. The ConvexHull of a point is the point itself.
ITopologicalOperator methods must be applied on highlevel geometries only. HighLevel geometries are point, multipoint, polyline and polygon. To use this method with lowlevel geometries such as segments (Line, Circular Arc, Elliptic Arc, Bézier Curve), paths or rings, they must be wrapped into highlevel geometries types.
This method does not support GeometryBags.
ConvexHull method does not deal with Z attribute now.
convexHull
in interface ITopologicalOperator
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public IGeometry intersect(IGeometry other, int resultDimension) throws IOException, AutomationException
The Intersection of two Geometries of the same Dimension is a Geometry containing only the regions of overlap between the original geometries.
Intersection is basically an AND between input geometries.
ITopologicalOperator methods must be applied on highlevel geometries only. HighLevel geometries are point, multipoint, polyline and polygon. To use this method with lowlevel geometries such as segments (Line, Circular Arc, Elliptic Arc, Bézier Curve), paths or rings, they must be wrapped into highlevel geometries types.
This method does not support GeometryBags.
Since ArcGIS 9.2, Intersect has a larger cost  it takes longer to run the method. Therefore, it is a better approach to test if the two geometries are disjoint before calling Intersect.
intersect
in interface ITopologicalOperator
other
 A reference to a com.esri.arcgis.geometry.IGeometry (in)resultDimension
 A com.esri.arcgis.geometry.esriGeometryDimension constant (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.IConstructMultipoint.constructIntersectionEx(com.esri.arcgis.geometry.ISegment, int, com.esri.arcgis.geometry.ISegment, int, double[], double[], int[])
,
IConstructMultipoint.constructIntersection(com.esri.arcgis.geometry.ISegment, int, com.esri.arcgis.geometry.ISegment, int, Object[], Object[], Object[])
,
ITopologicalOperator.intersect(com.esri.arcgis.geometry.IGeometry, int)
public IGeometry union(IGeometry other) throws IOException, AutomationException
The Union of two Geometries of the same Dimension is a single Geometry corresponding to the combination of both Geometries such that anything within either of the original geometries is also part of the unioned geometry, but anything common to both geometries only exists once in the unioned geometry.
The Union is basically an OR between the input geometries.
ITopologicalOperator methods must be applied on highlevel geometries only. HighLevel geometries are point, multipoint, polyline and polygon. To use this method with lowlevel geometries such as segments (Line, Circular Arc, Elliptic Arc, Bézier Curve), paths or rings, they must be wrapped into highlevel geometries types.
This method does not support GeometryBags.
union
in interface ITopologicalOperator
other
 A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void constructUnion(IEnumGeometry geometries) throws IOException, AutomationException
ConstructUnion simultaneously Unions an Enumeration of geometries of the same Dimension into a single geometry. ConstructUnion is more efficient for unioning a large collection of geometries simultaneously rather than cycling through each geometry individually.
ITopologicalOperator methods must be applied on highlevel geometries only. HighLevel geometries are point, multipoint, polyline and polygon. To use this method with lowlevel geometries such as segments (Line, Circular Arc, Elliptic Arc, Bézier Curve), paths or rings, they must be wrapped into highlevel geometries types.
This method does not support GeometryBags.
Temproray files might be created. If environment variable "ARCTMPDIR" exists, then the files are written to the path, otherwise written to current directory or system temp directory.
constructUnion
in interface ITopologicalOperator
geometries
 A reference to a com.esri.arcgis.geometry.IEnumGeometry (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public IGeometry difference(IGeometry other) throws IOException, AutomationException
Difference create a Geometry that is composed only of the region unique to the base geometry but not part of the input geometry.
ITopologicalOperator methods must be applied on highlevel geometries only. HighLevel geometries are point, multipoint, polyline and polygon. To use this method with lowlevel geometries such as segments (Line, Circular Arc, Elliptic Arc, Bézier Curve), paths or rings, they must be wrapped into highlevel geometries types.
This method does not support GeometryBags.
difference
in interface ITopologicalOperator
other
 A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public IGeometry symmetricDifference(IGeometry other) throws IOException, AutomationException
The SymmetricDifference between two Geometries of the same Dimension is the Union of those Geometries minus the Intersection of those Geometries. Thus, the SymmetricDifference is composed only of regions unique to only one of the geometries.
This method does not support GeometryBags.
SymmetricDifference is basically an XOR between the input geometries.
SymmetricDifference of G1 and G2 can also be described as the Union(Difference(G1, G2), Difference(G2, G1)).
ITopologicalOperator methods must be applied on highlevel geometries only. HighLevel geometries are point, multipoint, polyline and polygon. To use this method with lowlevel geometries such as segments (Line, Circular Arc, Elliptic Arc, Bézier Curve), paths or rings, they must be wrapped into highlevel geometries types.
This method does not support GeometryBags.
symmetricDifference
in interface ITopologicalOperator
other
 A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void clip(IEnvelope clipperEnvelope) throws IOException, AutomationException
The Clip method clips the geometry of the feature that is receiving the method call. The Clip method does not return an envelope. The geometry that is clipped will depend on what is Contained by the input clipperEnvelope.
Use QueryClipped or QueryClippedDense methods to send the results to a different polygon.
ITopologicalOperator methods must be applied on highlevel geometries only. HighLevel geometries are point, multipoint, polyline and polygon. To use this method with lowlevel geometries such as segments (Line, Circular Arc, Elliptic Arc, Bézier Curve), paths or rings, they must be wrapped into highlevel geometries types.
clip
in interface ITopologicalOperator
clipperEnvelope
 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 void queryClipped(IEnvelope clipperEnvelope, IGeometry clippedGeometry) throws IOException, AutomationException
QueryClipped returns the portion of the input Geometry that is Contained by the input Envelope. The returned geometry is the same type as the original geometry.
ITopologicalOperator methods must be applied on highlevel geometries only. HighLevel geometries are point, multipoint, polyline and polygon. To use this method with lowlevel geometries such as segments (Line, Circular Arc, Elliptic Arc, Bézier Curve), paths or rings, they must be wrapped into highlevel geometries types.
The other geometry must be an highlevel geometry. HighLevel geometries are point, multipoint, polyline and polygon. To use it with lowlevel geometries such as segments (Line, Circular Arc, Elliptic Arc, Bézier Curve), path or ring they must be wrapped into highlevel geometries type. The output geometry must be cocreated prior to the query. The output geometry is not cocreated by the method; it is populated. This can be used in performance critical situations. For example, creating the geometry only once outside a loop and use the query method could improve performance.
This method does not support GeometryBags.
queryClipped
in interface ITopologicalOperator
clipperEnvelope
 A reference to a com.esri.arcgis.geometry.IEnvelope (in)clippedGeometry
 A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void queryClippedDense(IEnvelope clipperEnvelope, double denseDistance, IGeometry clippedGeometry) throws IOException, AutomationException
ITopologicalOperator methods must be applied on highlevel geometries only. HighLevel geometries are point, multipoint, polyline and polygon. To use this method with lowlevel geometries such as segments (Line, Circular Arc, Elliptic Arc, Bézier Curve), paths or rings, they must be wrapped into highlevel geometries types.
The other geometry must be an highlevel geometry. HighLevel geometries are point, multipoint, polyline and polygon. To use it with lowlevel geometries such as segments (Line, Circular Arc, Elliptic Arc, Bézier Curve), path or ring they must be wrapped into highlevel geometries type. The output geometry must be cocreated prior to the query. The output geometry is not cocreated by the method; it is populated. This can be used in performance critical situations. For example, creating the geometry only once outside a loop and use the query method could improve performance.
This method does not support GeometryBags.
queryClippedDense
in interface ITopologicalOperator
clipperEnvelope
 A reference to a com.esri.arcgis.geometry.IEnvelope (in)denseDistance
 The denseDistance (in)clippedGeometry
 A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void cut(IPolyline cutter, IGeometry[] leftGeom, IGeometry[] rightGeom) throws IOException, AutomationException
When using a multipart polyline to cut a single ring of a polyline, the orientation of the polyline paths is important. The cut piece of the ring must be on the same side of each cutting path as defined by the orientation of each path.
ITopologicalOperator methods must be applied on highlevel geometries only. HighLevel geometries are point, multipoint, polyline and polygon. To use this method with lowlevel geometries such as segments (Line, Circular Arc, Elliptic Arc, Bézier Curve), paths or rings, they must be wrapped into highlevel geometries types.
This method does not support GeometryBags.
cut
in interface ITopologicalOperator
cutter
 A reference to a com.esri.arcgis.geometry.IPolyline (in)leftGeom
 A reference to a com.esri.arcgis.geometry.IGeometry (out: use single element array)rightGeom
 A reference to a com.esri.arcgis.geometry.IGeometry (out: use single element array)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public IGeometry getBoundary() throws IOException, AutomationException
The Boundary of a Geometry is the part one the exterior of the Geometry. The Boundary is one Dimension lower than the Dimension of the original Geometry. The Boundary of a Polygon are the Polylines that form the Rings of the Polygon. The Boundary of a Polyline is a Multipoint corresponding to the endpoints of each Path in the Polyline. The Boundary of a Multipoint is an empty set.
ITopologicalOperator methods must be applied on highlevel geometries only. HighLevel geometries are point, multipoint, polyline and polygon. To use this method with lowlevel geometries such as segments (Line, Circular Arc, Elliptic Arc, Bézier Curve), paths or rings, they must be wrapped into highlevel geometries types.
This method does not support GeometryBags.
getBoundary
in interface ITopologicalOperator
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void clipDense(IEnvelope clipperEnvelope, double denseDistance) throws IOException, AutomationException
ITopologicalOperator methods must be applied on highlevel geometries only. HighLevel geometries are point, multipoint, polyline and polygon. To use this method with lowlevel geometries such as segments (Line, Circular Arc, Elliptic Arc, Bézier Curve), paths or rings, they must be wrapped into highlevel geometries types.
This method does not support GeometryBags.
clipDense
in interface ITopologicalOperator
clipperEnvelope
 A reference to a com.esri.arcgis.geometry.IEnvelope (in)denseDistance
 The denseDistance (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public boolean hitTest(IPoint queryPoint, double searchRadius, int geometryPart, IPoint hitPoint, double[] hitDistance, int[] hitPartIndex, int[] hitSegmentIndex, boolean[] bRightSide) throws IOException, AutomationException
The segment index returned has different meanings depending on the esriGeometryHitPartType used (Please see the example for more details).
EsriGeometryPartVertex: returns a vertex index
EsriGeometryPartBoundary, esriGeometryPartMidpoint and esriGeometryPartEndpoint: return a segment index
EsriGeometryPartCentroid: Always returns 0 for the part index and the segment index.
brightside: Indicates if the input point is on the right side of the input geometry
Note: The distance units use in this method are the units of the input geometry. No conversion is performed. esriGeometryHitPartType parameter cannot be a combination of several esriGeometryHitPartTypes.
hitTest
in interface IHitTest
queryPoint
 A reference to a com.esri.arcgis.geometry.IPoint (in)searchRadius
 The searchRadius (in)geometryPart
 A com.esri.arcgis.geometry.esriGeometryHitPartType constant (in)hitPoint
 A reference to a com.esri.arcgis.geometry.IPoint (in)hitDistance
 The hitDistance (in/out: use single element array)hitPartIndex
 The hitPartIndex (in/out: use single element array)hitSegmentIndex
 The hitSegmentIndex (in/out: use single element array)bRightSide
 The bRightSide (in/out: use single element array)
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.public void getClassID(GUID[] pClassID) throws IOException, AutomationException
IPersist is a Microsoft interface. Please refer to MSDN for information about this interface.
getClassID
in interface IPersist
pClassID
 A Structure: com.esri.arcgis.support.ms.stdole.GUID (out: use single element array)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void isDirty() throws IOException, AutomationException
IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.
isDirty
in interface IPersistStream
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void load(IStream pstm) throws IOException, AutomationException
IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.
load
in interface IPersistStream
pstm
 A reference to a com.esri.arcgis.system.IStream (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void save(IStream pstm, int fClearDirty) throws IOException, AutomationException
IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.
save
in interface IPersistStream
pstm
 A reference to a com.esri.arcgis.system.IStream (in)fClearDirty
 The fClearDirty (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void getSizeMax(_ULARGE_INTEGER[] pcbSize) throws IOException, AutomationException
IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.
getSizeMax
in interface IPersistStream
pcbSize
 A Structure: com.esri.arcgis.system._ULARGE_INTEGER (out: use single element array)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public IClone esri_clone() throws IOException, AutomationException
esri_clone
in interface IClone
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void assign(IClone src) throws IOException, AutomationException
assign
in interface IClone
src
 A reference to a com.esri.arcgis.system.IClone (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public boolean isEqual(IClone other) throws IOException, AutomationException
IsEqual returns True if the receiver and the source have the same properties. Note, this does not imply that the receiver and the source reference the same object.
isEqual
in interface IClone
other
 A reference to a com.esri.arcgis.system.IClone (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public boolean isIdentical(IClone other) throws IOException, AutomationException
IsIdentical returns true if the receiver and the source reference the same object.
isIdentical
in interface IClone
other
 A reference to a com.esri.arcgis.system.IClone (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void serialize(IXMLSerializeData data) throws IOException, AutomationException
serialize
in interface IXMLSerialize
data
 A reference to a com.esri.arcgis.system.IXMLSerializeData (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void deserialize(IXMLSerializeData data) throws IOException, AutomationException
deserialize
in interface IXMLSerialize
data
 A reference to a com.esri.arcgis.system.IXMLSerializeData (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void putCoordsFromMGRS(String mgrs, int mode) throws IOException, AutomationException
Creates the coordinates of a point from the MGRS/USNG string description. The Point being used must already have a defined Spatial Reference. PutCoordsFromMGRS takes two inputs. The first is the MGRS string that you want to convert. The second is the esriMGRSModeEnum and determines which spheroid is used in the conversion since with different spheriods one of the alphabetic values is changed.
esriMGRSModeEnum:
esriMGRSMode_Automatic: the spheroid is choosen for you
esriMGRSMode_NewStyle: the spheroid is treated the as WGS84
esriMGRSMode_NewWith180InZone01:
esriMGRSMode_OldStyle: the spheroid is treated the as Clarke 1866 or Bessel
esriMGRSMode_OldWith180InZone01:
esriMGRSMode_USNG:
putCoordsFromMGRS
in interface IConversionMGRS
mgrs
 The mgrs (in)mode
 A com.esri.arcgis.geometry.esriMGRSModeEnum constant (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public String createMGRS(int numDigits, boolean round, int mode) throws IOException, AutomationException
This method creates a single string description ini MGRS/USNG for any Point on the Earth's surface. A string variable is needed for storing of this description. CreateMGRS takes three inputs.
The first is the integer number of digits you wish the string to carry.
0: To approximately 100 Kilometers depending on where on earth the point is.
5: To a square meter (This is the standard for MGRS/USNG).
8: To a square millimeter. This is the best precision possible and using a larger number will not result in great precision.
The second input parameter is a boolean that represents rounding.
True: The values of the UTM coordinates will be rounded.
False: The values of the UTM coordinates will be truncated.
The third input is the esriMGRSModeEnum and determines which spheroid is used in the conversion because with different spheriods one of the alphabetic values is changed.
esriMGRSModeEnum:
esriMGRSMode_Automatic: The spheroid from the data's geographic coordinate system is used.
esriMGRSMode_NewStyle: The spheroid is treated the same as WGS84 would be.
esriMGRSMode_NewWith180InZone01: Same as NewStyle but a point at +180 is assumed to be in UTM zone 1, rather than UTM zone 60.
esriMGRSMode_OldStyle: The spheroid is treated the same as Clarke 1866 or Bessel would be.
esriMGRSMode_OldWith180InZone01: Same as OldStyle but a point at +180 is assumed to be in UTM zone 1, rather than UTM zone 60.
esriMGRSMode_USNG: The spheroid is treated the same as WGS84 or GRS80.
createMGRS
in interface IConversionMGRS
numDigits
 The numDigits (in)round
 The round (in)mode
 A com.esri.arcgis.geometry.esriMGRSModeEnum constant (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void snap() throws IOException, AutomationException
snap
in interface IMSnap
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void queryNearestPoint3D(IPoint pInP, int extension, IPoint pNearest) throws IOException, AutomationException
Queries the nearest point on a z aware geometry to the input point in 3D space. Depending on the method of segment extension, the nearest point can also be found on an extension of the geometry.
If the geometry is an Envelope and the input point is located within the bounds of the Envelope, QueryNearestPoint3D will return a point on the exterior of the Envelope nearest the input point.
queryNearestPoint3D
in interface IProximityOperator3D
pInP
 A reference to a com.esri.arcgis.geometry.IPoint (in)extension
 A com.esri.arcgis.geometry.esriSegmentExtension constant (in)pNearest
 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 IPoint returnNearestPoint3D(IPoint pInP, int extension) throws IOException, AutomationException
Finds and returns the nearest point, in 3D space, on a z aware geometry to the input point. Depending on the method of segment extension, the nearest point can also be found on an extension of the geometry.
If the geometry is an Envelope and the input point is located within the bounds of the Envelope, QueryNearestPoint3D will return a point on the exterior of the Envelope nearest the input point.
returnNearestPoint3D
in interface IProximityOperator3D
pInP
 A reference to a com.esri.arcgis.geometry.IPoint (in)extension
 A com.esri.arcgis.geometry.esriSegmentExtension constant (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public double returnDistance3D(IGeometry pOther) throws IOException, AutomationException
Returns the minimum distance between two z aware geometries in 3D space. If the geometries intersect, the minimum distance is 0. Only returns the distance, and not the nearest points.
returnDistance3D
in interface IProximityOperator3D
pOther
 A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public boolean disjoint3D(IGeometry pOther) throws IOException, AutomationException
Determines whether two z aware geometries intersect in 3D space. Two geometries are disjoint if their intersection is empty. Two geometries intersect if disjoint is FALSE.
disjoint3D
in interface IRelationalOperator3D
pOther
 A reference to a com.esri.arcgis.geometry.IGeometry (in)
IOException
 If there are interop problems.
AutomationException
 If the ArcObject component throws an exception.public void writeExternal(ObjectOutput out) throws IOException
writeExternal
in interface Externalizable
IOException
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
readExternal
in interface Externalizable
IOException
ClassNotFoundException


PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 