com.esri.arcgis.geometry
Class UnknownCoordinateSystem

java.lang.Object
  extended by com.esri.arcgis.geometry.UnknownCoordinateSystem
All Implemented Interfaces:
ICompareCoordinateSystems, IConstructUnknownCoordinateSystem, IControlPrecision, IControlPrecision2, IESRISpatialReference, IESRISpatialReferenceGEN, ISpatialReference, ISpatialReference2, ISpatialReference2GEN, ISpatialReference4, ISpatialReferenceInfo, ISpatialReferenceResolution, ISpatialReferenceTolerance, IUnknownCoordinateSystem, com.esri.arcgis.interop.RemoteObjRef, IClone, IPersist, IPersistStream, ISupportErrorInfo, Externalizable, Serializable

public class UnknownCoordinateSystem
extends Object
implements com.esri.arcgis.interop.RemoteObjRef, ISpatialReference2GEN, IESRISpatialReferenceGEN, IUnknownCoordinateSystem, IClone, ICompareCoordinateSystems, IPersist, IPersistStream, ISpatialReferenceInfo, ISpatialReference, ISpatialReference2, ISpatialReference4, IESRISpatialReference, ISupportErrorInfo, IControlPrecision, IControlPrecision2, ISpatialReferenceTolerance, ISpatialReferenceResolution, IConstructUnknownCoordinateSystem, Externalizable

Creates an unknown coordinate system.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

See Also:
Serialized Form

Constructor Summary
UnknownCoordinateSystem()
          Constructs a UnknownCoordinateSystem using ArcGIS Engine.
UnknownCoordinateSystem(Object obj)
          Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.
UnknownCoordinateSystem theUnknownCoordinateSystem = (UnknownCoordinateSystem) obj;
 
Method Summary
 void applyPrecision(_WKSPoint[] points, double[] ms, double[] zs)
          Applies the measure and z value precisions.
 void applyPrecision(int cPoints, _WKSPoint points, double[] ms, double[] zs)
          Applies the measure and z value precisions.
 void applyXYPrecision(_WKSPoint[] points)
          Applies the XY precision.
 void applyXYPrecision(int cPoints, _WKSPoint points)
          Applies the XY precision.
 void assign(IClone src)
          Assigns the properties of src to the receiver.
 void changed()
          Notify this object that some of its parts have changed (parameter values, z unit, etc.).
 void constructFromEnvelope(IEnvelope pEnvelope)
          Constructs the smallest, high precision, standard UCS that will completely contain the specified envelope.
 void constructFromHorizon()
          Defines the XY resolution and domain extent of this spatial reference based on the extent of its horizon.
 boolean equals(Object o)
          Compare this object with another
 IClone esri_clone()
          Clones the receiver and assigns the result to *clone.
 void exportToESRISpatialReference(String[] str, int[] cBytesWrote)
          Exports this spatial reference component to a buffer.
 String getAbbreviation()
          The abbreviated name of this spatial reference component.
 String getAlias()
          The alias of this spatial reference component.
 void getClassID(GUID[] pClassID)
          getClassID
static String getClsid()
          getClsid.
 void getDomain(double[] xMin, double[] xMax, double[] yMin, double[] yMax)
          Get the domain extent.
 int getESRISpatialReferenceSize()
          The number of bytes required to hold the persistant representation of this spatial reference component.
 int getFactoryCode()
          The factory code of the spatial reference.
 void getFalseOriginAndUnits(double[] falseX, double[] falseY, double[] xyUnits)
          Get the false origin and units.
 void getMDomain(double[] outMMin, double[] outMMax)
          Get the measure domain extent.
 void getMFalseOriginAndUnits(double[] falseM, double[] mUnits)
          Get the measure false origin and units.
 double getMResolution()
          The M, or measure, resolution of this spatial reference.
 double getMTolerance()
          The tolerance used to determine equality of M values.
 int getMToleranceValid()
          Returns true if the M tolerance is well defined (not NaN) and >= the minimum M tolerance.
 String getName()
          The name of this spatial reference component.
 String getRemarks()
          The comment string of this spatial reference component.
 void getSizeMax(_ULARGE_INTEGER[] pcbSize)
          getSizeMax
 double getXYResolution(boolean bStandardUnits)
          The XY resolution (distance in SR units between distinguishable grid points) of this spatial reference.
 double getXYTolerance()
          The xy tolerance used to control point coalescing in the X and Y dimensions.
 int getXYToleranceValid()
          Returns esriSRToleranceOK if the XY tolerance is well defined (not NaN) and >= the minimum XY tolerance.
 ILinearUnit getZCoordinateUnit()
          The unit for the Z coordinate.
 void getZDomain(double[] outZMin, double[] outZMax)
          Get the Z domain extent.
 void getZFalseOriginAndUnits(double[] falseZ, double[] zUnits)
          Get the Z false origin and units.
 double getZResolution(boolean bStandardUnits)
          The Z resolution (height/depth distance between distinguishable grid points) of this spatial reference.
 double getZTolerance()
          The tolerance used to control point coalescing strictly along the Z axis.
 int getZToleranceValid()
          Returns true if the Z tolerance is well defined (not NaN) and >= the minimum Z tolerance.
 double getZToXYFactor()
          Conversion factor from Z units to XY units.
 int hashCode()
          the hashcode for this object
 boolean hasMPrecision()
          Returns true when m-value precision information has been defined.
 boolean hasXYPrecision()
          Returns true when (x,y) precision information has been defined.
 boolean hasZPrecision()
          Returns true when z-value precision information has been defined.
 void importFromESRISpatialReference(String str, int[] cBytesRead)
          Defines this spatial reference component from the specified ESRISpatialReference buffer.
 void interfaceSupportsErrorInfo(GUID riid)
          interfaceSupportsErrorInfo
 void isDirty()
          isDirty
 boolean isEqual(IClone other)
          Indicates if the receiver and other have the same properties.
 boolean isEqualLeftLongitude(ISpatialReference other, boolean compareVCS)
          For geographic coordinate systems, this version of IsEqual includes considers their left longitude properties.
 boolean isEqualNoVCS(ISpatialReference other)
          Compares spatial references without considering any vertical coordinate system that may be associated with the spatial reference.
 boolean isHighPrecision()
          TRUE if a high precision integer grid is being used to round coordinate values.
 boolean isIdentical(IClone other)
          Indicates if the receiver and other are the same object.
 boolean isMPrecisionEqual(ISpatialReference otherSR)
          Returns true if the measure precisions of the two spatial references are the same.
 boolean isMToleranceEqual(ISpatialReference otherSR)
          Returns true if the measure tolerances of the two spatial references are the same.
 void isPrecisionEqual(ISpatialReference otherSR, boolean[] isPrecisionEqual)
          Returns TRUE when the precision information for the two spatial references is the same.
 boolean isUsePrecision()
          Returns TRUE if the precision information can be used for snapping.
 boolean isXYPrecisionEqual(ISpatialReference otherSR)
          Returns true if the XY precisions of the two spatial references are the same.
 boolean isXYToleranceEqual(ISpatialReference otherSR)
          Returns true if the XY tolerances of the two spatial references are the same.
 boolean isZPrecisionEqual(ISpatialReference otherSR)
          Returns true if the Z precisions of the two spatial references are the same.
 boolean isZToleranceEqual(ISpatialReference otherSR)
          Returns true if the Z tolerances of the two spatial references are the same.
 void load(IStream pstm)
          load
 void readExternal(ObjectInput in)
           
 void save(IStream pstm, int fClearDirty)
          save
 void setDefaultMResolution()
          Sets the m coordinate grid resolution to 1 mm for a low precision spatial reference or 1/10 mm for a high precision spatial reference.
 void setDefaultMTolerance()
          Sets the default tolerance used to determine equality of M values (2.0 * m resolution).
 void setDefaultXYResolution()
          defaults: PCS(hi): 1/10 mm; PCS(lo): 1 mm; GCS(hi): 1/10,000 arc-second; GCS(lo): 1/500 arc-second; UCS(hi): 1/10 mm (assumed); UCS(lo): 1 mm (assumed).
 void setDefaultXYTolerance()
          Sets the default cluster tolerance used to control point coalescing in the X and Y dimensions (the equivalent of 1 mm in the current spatial reference units).
 void setDefaultZResolution()
          Sets the z coordinate grid resolution to 1 mm for a low precision spatial reference or 1/10 mm for a high precision spatial reference.
 void setDefaultZTolerance()
          Sets the default value for the Z cluster tolerance used to control point coalescing strictly along the Z axis (the equivalent of 1 mm in the current vertical coordinate system units).
 void setDomain(double xMin, double xMax, double yMin, double yMax)
          Set the xy domain extent.
 void setFalseOriginAndUnits(double falseX, double falseY, double xyUnits)
          Set the false origin and units.
 void setIsHighPrecision(boolean isHighPrecision)
          TRUE if a high precision integer grid is being used to round coordinate values.
 void setMDomain(double inMMin, double inMMax)
          Set the measure domain extent.
 void setMFalseOriginAndUnits(double falseM, double mUnits)
          Set the measure false origin and units.
 void setMinimumMTolerance()
          Sets the minimum tolerance (i.e., pre 9.2) used to determine equality of M values (2.0 * m resolution).
 void setMinimumXYTolerance()
          Sets the xy cluster tolerance to be 2.0 * resolution.
 void setMinimumZTolerance()
          Sets the minimum value for the Z cluster tolerance (i.e., pre 9.2) used to control point coalescing strictly along the Z axis (the equivalent of 1 mm in the current vertical coordinate system units).
 void setMResolution(double interval)
          The M, or measure, resolution of this spatial reference.
 void setMTolerance(double mTolerance)
          The tolerance used to determine equality of M values.
 void setUsePrecision(boolean usePrecision)
          Returns TRUE if the precision information can be used for snapping.
 void setXYResolution(boolean bStandardUnits, double xYResolution)
          The XY resolution (distance in SR units between distinguishable grid points) of this spatial reference.
 void setXYTolerance(double xYTolerance)
          The xy tolerance used to control point coalescing in the X and Y dimensions.
 void setZCoordinateUnit(ILinearUnit zunit)
          The unit for the Z coordinate.
 void setZDomain(double inZMin, double inZMax)
          Set the z domain extent.
 void setZFalseOriginAndUnits(double falseZ, double zUnits)
          Set the Z false origin and units.
 void setZResolution(boolean bStandardUnits, double zResolution)
          The Z resolution (height/depth distance between distinguishable grid points) of this spatial reference.
 void setZTolerance(double zTolerance)
          The tolerance used to control point coalescing strictly along the Z axis.
 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

UnknownCoordinateSystem

public UnknownCoordinateSystem()
                        throws IOException,
                               UnknownHostException
Constructs a UnknownCoordinateSystem using ArcGIS Engine.

Throws:
IOException - if there are interop problems
UnknownHostException - if there are interop problems

UnknownCoordinateSystem

public UnknownCoordinateSystem(Object obj)
                        throws IOException
Deprecated. As of ArcGIS 9.2, replaced by normal Java casts.
UnknownCoordinateSystem theUnknownCoordinateSystem = (UnknownCoordinateSystem) obj;

Construct a UnknownCoordinateSystem using a reference to such an object returned from ArcGIS Engine or Server. This is semantically equivalent to casting obj to UnknownCoordinateSystem.

Parameters:
obj - an object returned from ArcGIS Engine or Server
Throws:
IOException - if there are interop problems
Method Detail

getClsid

public static String getClsid()
getClsid.


equals

public boolean equals(Object o)
Compare this object with another

Overrides:
equals in class Object

hashCode

public int hashCode()
the hashcode for this object

Overrides:
hashCode in class Object

getName

public String getName()
               throws IOException,
                      AutomationException
The name of this spatial reference component.

Product Availability

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

Specified by:
getName in interface ISpatialReference2GEN
Specified by:
getName in interface ISpatialReferenceInfo
Returns:
The name
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getAlias

public String getAlias()
                throws IOException,
                       AutomationException
The alias of this spatial reference component.

Product Availability

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

Specified by:
getAlias in interface ISpatialReference2GEN
Specified by:
getAlias in interface ISpatialReferenceInfo
Returns:
The alias
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getAbbreviation

public String getAbbreviation()
                       throws IOException,
                              AutomationException
The abbreviated name of this spatial reference component.

Product Availability

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

Specified by:
getAbbreviation in interface ISpatialReference2GEN
Specified by:
getAbbreviation in interface ISpatialReferenceInfo
Returns:
The abbreviation
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getRemarks

public String getRemarks()
                  throws IOException,
                         AutomationException
The comment string of this spatial reference component.

Product Availability

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

Specified by:
getRemarks in interface ISpatialReference2GEN
Specified by:
getRemarks in interface ISpatialReferenceInfo
Returns:
The remarks
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getFactoryCode

public int getFactoryCode()
                   throws IOException,
                          AutomationException
The factory code of the spatial reference.

Remarks

The factory code is an integer identifier that is unique by projection engine object type, such as a projected coordinate system. You can use a factory code in the ISpatialReferenceFactory::CreateProjectedCoordinateSystem method for example. If you create a custom projected coordinate system, the factory code is zero.

Product Availability

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

Specified by:
getFactoryCode in interface ISpatialReference2GEN
Specified by:
getFactoryCode in interface ISpatialReferenceInfo
Returns:
The code
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

hasXYPrecision

public boolean hasXYPrecision()
                       throws IOException,
                              AutomationException
Returns true when (x,y) precision information has been defined.

Product Availability

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

Specified by:
hasXYPrecision in interface ISpatialReference
Specified by:
hasXYPrecision in interface ISpatialReference2GEN
Returns:
The hasXYPrecision
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

hasZPrecision

public boolean hasZPrecision()
                      throws IOException,
                             AutomationException
Returns true when z-value precision information has been defined.

Product Availability

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

Specified by:
hasZPrecision in interface ISpatialReference
Specified by:
hasZPrecision in interface ISpatialReference2GEN
Returns:
The hasZPrecision
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

hasMPrecision

public boolean hasMPrecision()
                      throws IOException,
                             AutomationException
Returns true when m-value precision information has been defined.

Product Availability

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

Specified by:
hasMPrecision in interface ISpatialReference
Specified by:
hasMPrecision in interface ISpatialReference2GEN
Returns:
The hasMPrecision
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isPrecisionEqual

public void isPrecisionEqual(ISpatialReference otherSR,
                             boolean[] isPrecisionEqual)
                      throws IOException,
                             AutomationException
Returns TRUE when the precision information for the two spatial references is the same.

Product Availability

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

Specified by:
isPrecisionEqual in interface ISpatialReference
Specified by:
isPrecisionEqual in interface ISpatialReference2GEN
Parameters:
otherSR - A reference to a com.esri.arcgis.geometry.ISpatialReference (in)
isPrecisionEqual - The isPrecisionEqual (in/out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setFalseOriginAndUnits

public void setFalseOriginAndUnits(double falseX,
                                   double falseY,
                                   double xyUnits)
                            throws IOException,
                                   AutomationException
Set the false origin and units.

Product Availability

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

Specified by:
setFalseOriginAndUnits in interface ISpatialReference
Specified by:
setFalseOriginAndUnits in interface ISpatialReference2GEN
Parameters:
falseX - The falseX (in)
falseY - The falseY (in)
xyUnits - The xyUnits (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setZFalseOriginAndUnits

public void setZFalseOriginAndUnits(double falseZ,
                                    double zUnits)
                             throws IOException,
                                    AutomationException
Set the Z false origin and units.

Product Availability

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

Specified by:
setZFalseOriginAndUnits in interface ISpatialReference
Specified by:
setZFalseOriginAndUnits in interface ISpatialReference2GEN
Parameters:
falseZ - The falseZ (in)
zUnits - The zUnits (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setMFalseOriginAndUnits

public void setMFalseOriginAndUnits(double falseM,
                                    double mUnits)
                             throws IOException,
                                    AutomationException
Set the measure false origin and units.

Product Availability

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

Specified by:
setMFalseOriginAndUnits in interface ISpatialReference
Specified by:
setMFalseOriginAndUnits in interface ISpatialReference2GEN
Parameters:
falseM - The falseM (in)
mUnits - The mUnits (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getFalseOriginAndUnits

public void getFalseOriginAndUnits(double[] falseX,
                                   double[] falseY,
                                   double[] xyUnits)
                            throws IOException,
                                   AutomationException
Get the false origin and units.

Product Availability

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

Specified by:
getFalseOriginAndUnits in interface ISpatialReference
Specified by:
getFalseOriginAndUnits in interface ISpatialReference2GEN
Parameters:
falseX - The falseX (in/out: use single element array)
falseY - The falseY (in/out: use single element array)
xyUnits - The xyUnits (in/out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getZFalseOriginAndUnits

public void getZFalseOriginAndUnits(double[] falseZ,
                                    double[] zUnits)
                             throws IOException,
                                    AutomationException
Get the Z false origin and units.

Product Availability

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

Specified by:
getZFalseOriginAndUnits in interface ISpatialReference
Specified by:
getZFalseOriginAndUnits in interface ISpatialReference2GEN
Parameters:
falseZ - The falseZ (in/out: use single element array)
zUnits - The zUnits (in/out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getMFalseOriginAndUnits

public void getMFalseOriginAndUnits(double[] falseM,
                                    double[] mUnits)
                             throws IOException,
                                    AutomationException
Get the measure false origin and units.

Product Availability

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

Specified by:
getMFalseOriginAndUnits in interface ISpatialReference
Specified by:
getMFalseOriginAndUnits in interface ISpatialReference2GEN
Parameters:
falseM - The falseM (in/out: use single element array)
mUnits - The mUnits (in/out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getDomain

public void getDomain(double[] xMin,
                      double[] xMax,
                      double[] yMin,
                      double[] yMax)
               throws IOException,
                      AutomationException
Get the domain extent.

Product Availability

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

Specified by:
getDomain in interface ISpatialReference
Specified by:
getDomain in interface ISpatialReference2GEN
Parameters:
xMin - The xMin (in/out: use single element array)
xMax - The xMax (in/out: use single element array)
yMin - The yMin (in/out: use single element array)
yMax - The yMax (in/out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setDomain

public void setDomain(double xMin,
                      double xMax,
                      double yMin,
                      double yMax)
               throws IOException,
                      AutomationException
Set the xy domain extent.

Product Availability

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

Specified by:
setDomain in interface ISpatialReference
Specified by:
setDomain in interface ISpatialReference2GEN
Parameters:
xMin - The xMin (in)
xMax - The xMax (in)
yMin - The yMin (in)
yMax - The yMax (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getZDomain

public void getZDomain(double[] outZMin,
                       double[] outZMax)
                throws IOException,
                       AutomationException
Get the Z domain extent.

Product Availability

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

Specified by:
getZDomain in interface ISpatialReference
Specified by:
getZDomain in interface ISpatialReference2GEN
Parameters:
outZMin - The outZMin (in/out: use single element array)
outZMax - The outZMax (in/out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setZDomain

public void setZDomain(double inZMin,
                       double inZMax)
                throws IOException,
                       AutomationException
Set the z domain extent.

Product Availability

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

Specified by:
setZDomain in interface ISpatialReference
Specified by:
setZDomain in interface ISpatialReference2GEN
Parameters:
inZMin - The inZMin (in)
inZMax - The inZMax (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getMDomain

public void getMDomain(double[] outMMin,
                       double[] outMMax)
                throws IOException,
                       AutomationException
Get the measure domain extent.

Product Availability

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

Specified by:
getMDomain in interface ISpatialReference
Specified by:
getMDomain in interface ISpatialReference2GEN
Parameters:
outMMin - The outMMin (in/out: use single element array)
outMMax - The outMMax (in/out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setMDomain

public void setMDomain(double inMMin,
                       double inMMax)
                throws IOException,
                       AutomationException
Set the measure domain extent.

Product Availability

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

Specified by:
setMDomain in interface ISpatialReference
Specified by:
setMDomain in interface ISpatialReference2GEN
Parameters:
inMMin - The inMMin (in)
inMMax - The inMMax (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getZCoordinateUnit

public ILinearUnit getZCoordinateUnit()
                               throws IOException,
                                      AutomationException
The unit for the Z coordinate.

Product Availability

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

Specified by:
getZCoordinateUnit in interface ISpatialReference
Specified by:
getZCoordinateUnit in interface ISpatialReference2GEN
Returns:
A reference to a com.esri.arcgis.geometry.ILinearUnit
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setZCoordinateUnit

public void setZCoordinateUnit(ILinearUnit zunit)
                        throws IOException,
                               AutomationException
The unit for the Z coordinate.

Product Availability

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

Specified by:
setZCoordinateUnit in interface ISpatialReference
Specified by:
setZCoordinateUnit in interface ISpatialReference2GEN
Parameters:
zunit - A reference to a com.esri.arcgis.geometry.ILinearUnit (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

changed

public void changed()
             throws IOException,
                    AutomationException
Notify this object that some of its parts have changed (parameter values, z unit, etc.).

Product Availability

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

Specified by:
changed in interface ISpatialReference
Specified by:
changed in interface ISpatialReference2GEN
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isXYPrecisionEqual

public boolean isXYPrecisionEqual(ISpatialReference otherSR)
                           throws IOException,
                                  AutomationException
Returns true if the XY precisions of the two spatial references are the same.

Product Availability

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

Specified by:
isXYPrecisionEqual in interface ISpatialReference2
Specified by:
isXYPrecisionEqual in interface ISpatialReference2GEN
Parameters:
otherSR - A reference to a com.esri.arcgis.geometry.ISpatialReference (in)
Returns:
The isXYPrecisionEqual
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isMPrecisionEqual

public boolean isMPrecisionEqual(ISpatialReference otherSR)
                          throws IOException,
                                 AutomationException
Returns true if the measure precisions of the two spatial references are the same.

Product Availability

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

Specified by:
isMPrecisionEqual in interface ISpatialReference2
Specified by:
isMPrecisionEqual in interface ISpatialReference2GEN
Parameters:
otherSR - A reference to a com.esri.arcgis.geometry.ISpatialReference (in)
Returns:
The isMPrecisionEqual
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isZPrecisionEqual

public boolean isZPrecisionEqual(ISpatialReference otherSR)
                          throws IOException,
                                 AutomationException
Returns true if the Z precisions of the two spatial references are the same.

Product Availability

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

Specified by:
isZPrecisionEqual in interface ISpatialReference2
Specified by:
isZPrecisionEqual in interface ISpatialReference2GEN
Parameters:
otherSR - A reference to a com.esri.arcgis.geometry.ISpatialReference (in)
Returns:
The isZPrecisionEqual
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

applyXYPrecision

public void applyXYPrecision(_WKSPoint[] points)
                      throws IOException,
                             AutomationException
Applies the XY precision.

Product Availability

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

Specified by:
applyXYPrecision in interface ISpatialReference2GEN
Parameters:
points - A Structure: com.esri.arcgis.system._WKSPoint (An array of com.esri.arcgis.system._WKSPoint COM typedef) (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

applyPrecision

public void applyPrecision(_WKSPoint[] points,
                           double[] ms,
                           double[] zs)
                    throws IOException,
                           AutomationException
Applies the measure and z value precisions.

Product Availability

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

Specified by:
applyPrecision in interface ISpatialReference2GEN
Parameters:
points - A Structure: com.esri.arcgis.system._WKSPoint (An array of com.esri.arcgis.system._WKSPoint COM typedef) (in)
ms - The ms (in)
zs - The zs (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getESRISpatialReferenceSize

public int getESRISpatialReferenceSize()
                                throws IOException,
                                       AutomationException
The number of bytes required to hold the persistant representation of this spatial reference component.

Product Availability

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

Specified by:
getESRISpatialReferenceSize in interface IESRISpatialReference
Specified by:
getESRISpatialReferenceSize in interface IESRISpatialReferenceGEN
Returns:
The cBytes
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

importFromESRISpatialReference

public void importFromESRISpatialReference(String str,
                                           int[] cBytesRead)
                                    throws IOException,
                                           AutomationException
Defines this spatial reference component from the specified ESRISpatialReference buffer.

Product Availability

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

Specified by:
importFromESRISpatialReference in interface IESRISpatialReference
Specified by:
importFromESRISpatialReference in interface IESRISpatialReferenceGEN
Parameters:
str - The str (in)
cBytesRead - The cBytesRead (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

exportToESRISpatialReference

public void exportToESRISpatialReference(String[] str,
                                         int[] cBytesWrote)
                                  throws IOException,
                                         AutomationException
Exports this spatial reference component to a buffer.

Product Availability

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

Specified by:
exportToESRISpatialReference in interface IESRISpatialReference
Specified by:
exportToESRISpatialReference in interface IESRISpatialReferenceGEN
Parameters:
str - The str (out: use single element array)
cBytesWrote - The cBytesWrote (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

esri_clone

public IClone esri_clone()
                  throws IOException,
                         AutomationException
Clones the receiver and assigns the result to *clone.

Product Availability

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

Specified by:
esri_clone in interface IClone
Returns:
A reference to a com.esri.arcgis.system.IClone
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

assign

public void assign(IClone src)
            throws IOException,
                   AutomationException
Assigns the properties of src to the receiver.

Description

Use Assign method to assign the properties of source object to receiver object. Both objects need to have the same CLSIDs. Both source and receiver objects need to be instantiated.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
assign in interface IClone
Parameters:
src - A reference to a com.esri.arcgis.system.IClone (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isEqual

public boolean isEqual(IClone other)
                throws IOException,
                       AutomationException
Indicates if the receiver and other have the same properties.

Description

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.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isEqual in interface IClone
Parameters:
other - A reference to a com.esri.arcgis.system.IClone (in)
Returns:
The equal
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isIdentical

public boolean isIdentical(IClone other)
                    throws IOException,
                           AutomationException
Indicates if the receiver and other are the same object.

Description

IsIdentical returns true if the receiver and the source reference the same object.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isIdentical in interface IClone
Parameters:
other - A reference to a com.esri.arcgis.system.IClone (in)
Returns:
The identical
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isEqualNoVCS

public boolean isEqualNoVCS(ISpatialReference other)
                     throws IOException,
                            AutomationException
Compares spatial references without considering any vertical coordinate system that may be associated with the spatial reference.

Product Availability

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

Specified by:
isEqualNoVCS in interface ICompareCoordinateSystems
Parameters:
other - A reference to a com.esri.arcgis.geometry.ISpatialReference (in)
Returns:
The equal
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isEqualLeftLongitude

public boolean isEqualLeftLongitude(ISpatialReference other,
                                    boolean compareVCS)
                             throws IOException,
                                    AutomationException
For geographic coordinate systems, this version of IsEqual includes considers their left longitude properties. Same as IsEqual for projected coordinate systems.

Product Availability

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

Specified by:
isEqualLeftLongitude in interface ICompareCoordinateSystems
Parameters:
other - A reference to a com.esri.arcgis.geometry.ISpatialReference (in)
compareVCS - The compareVCS (in)
Returns:
The equal
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getClassID

public void getClassID(GUID[] pClassID)
                throws IOException,
                       AutomationException
getClassID

Description

IPersist is a Microsoft interface. Please refer to MSDN for information about this interface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getClassID in interface IPersist
Parameters:
pClassID - A Structure: com.esri.arcgis.support.ms.stdole.GUID (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isDirty

public void isDirty()
             throws IOException,
                    AutomationException
isDirty

Description

IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isDirty in interface IPersistStream
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

load

public void load(IStream pstm)
          throws IOException,
                 AutomationException
load

Description

IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
load in interface IPersistStream
Parameters:
pstm - A reference to a com.esri.arcgis.system.IStream (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

save

public void save(IStream pstm,
                 int fClearDirty)
          throws IOException,
                 AutomationException
save

Description

IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
save in interface IPersistStream
Parameters:
pstm - A reference to a com.esri.arcgis.system.IStream (in)
fClearDirty - The fClearDirty (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getSizeMax

public void getSizeMax(_ULARGE_INTEGER[] pcbSize)
                throws IOException,
                       AutomationException
getSizeMax

Description

IPersistStream is a Microsoft interface. Please refer to MSDN for information about this interface.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
getSizeMax in interface IPersistStream
Parameters:
pcbSize - A Structure: com.esri.arcgis.system._ULARGE_INTEGER (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

applyXYPrecision

public void applyXYPrecision(int cPoints,
                             _WKSPoint points)
                      throws IOException,
                             AutomationException
Applies the XY precision.

Description

The ApplyXYPrecision method snaps XY coordinate values to the spatial reference's coordinate grid. Normally, the geodatabase calls this method when appropriate, however you may need to use it when comparing locally generated coordinates against features coming from a geodatabase.

Remarks

The cPoints value is the number of points to which you wish to apply the XY precision (1/resolution). A WKSPoint is a structure that contains the X and Y values of a coordinate pair.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
applyXYPrecision in interface ISpatialReference2
Parameters:
cPoints - The cPoints (in)
points - A Structure: com.esri.arcgis.system._WKSPoint (A com.esri.arcgis.system._WKSPoint COM typedef) (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

applyPrecision

public void applyPrecision(int cPoints,
                           _WKSPoint points,
                           double[] ms,
                           double[] zs)
                    throws IOException,
                           AutomationException
Applies the measure and z value precisions.

Description

The ApplyPrecision method snaps measure or z values to the spatial reference grid. Each SpatialReference has an extent and a resolution (1/precision) for the xy, z, and measure values. You can set this information with the SetZDomain, SetMDomain, SetZFalseOriginAndUnits or the SetMFalseOriginAndUnits methods. If you use a Domain method, the resolution (1/precision) is calculated from the given extent. The FalseOriginAndUnits methods sets the lower bound of the extent and explicitly defines the precision (units, or 1/resolution) of the spatial reference.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
applyPrecision in interface ISpatialReference2
Parameters:
cPoints - The cPoints (in)
points - A Structure: com.esri.arcgis.system._WKSPoint (A com.esri.arcgis.system._WKSPoint COM typedef) (in)
ms - The ms (in)
zs - The zs (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getZToXYFactor

public double getZToXYFactor()
                      throws IOException,
                             AutomationException
Conversion factor from Z units to XY units.

Product Availability

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

Specified by:
getZToXYFactor in interface ISpatialReference4
Returns:
The pZFactor
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

interfaceSupportsErrorInfo

public void interfaceSupportsErrorInfo(GUID riid)
                                throws IOException,
                                       AutomationException
interfaceSupportsErrorInfo

Description

Indicates whether the interface supports IErrorInfo.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
interfaceSupportsErrorInfo in interface ISupportErrorInfo
Parameters:
riid - A Structure: com.esri.arcgis.support.ms.stdole.GUID (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isUsePrecision

public boolean isUsePrecision()
                       throws IOException,
                              AutomationException
Returns TRUE if the precision information can be used for snapping.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
isUsePrecision in interface IControlPrecision
Returns:
The usePrecision
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setUsePrecision

public void setUsePrecision(boolean usePrecision)
                     throws IOException,
                            AutomationException
Returns TRUE if the precision information can be used for snapping.

Product Availability

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

Supported Platforms

Windows, Solaris, Linux

Specified by:
setUsePrecision in interface IControlPrecision
Parameters:
usePrecision - The usePrecision (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isHighPrecision

public boolean isHighPrecision()
                        throws IOException,
                               AutomationException
TRUE if a high precision integer grid is being used to round coordinate values. The scale factors of the spatial reference are re-scaled when this property is changed.

Product Availability

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

Specified by:
isHighPrecision in interface IControlPrecision2
Returns:
The isHighPrecision
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setIsHighPrecision

public void setIsHighPrecision(boolean isHighPrecision)
                        throws IOException,
                               AutomationException
TRUE if a high precision integer grid is being used to round coordinate values. The scale factors of the spatial reference are re-scaled when this property is changed.

Product Availability

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

Specified by:
setIsHighPrecision in interface IControlPrecision2
Parameters:
isHighPrecision - The isHighPrecision (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setDefaultXYTolerance

public void setDefaultXYTolerance()
                           throws IOException,
                                  AutomationException
Sets the default cluster tolerance used to control point coalescing in the X and Y dimensions (the equivalent of 1 mm in the current spatial reference units).

Remarks

SetDefaultXYTolerance establishes the default value for the XY tolerance, taking into account the current units of the spatial reference. Any established tolerance will not be changed automatically if the units of the spatial reference are changed. For a ProjectedCoordinateSystem or an UnknownCoordinateSystem, the default tolerance is 1 mm (expressed in the units of the spatial reference) or 2.0 * XYResolution, whichever is larger. For a GeographicCoordinateSystem, it is the angle subtending 1 mm at the equator, or 2.0 * XYResolution, whichever is larger.

The minimum allowable XYTolerance is 2.0 * XYResolution.

If the value specified by SetDefaultXYTolerance is not greater than or equal to 2.0 * XYResolution, the XYTolerance will be set at 2.0 * XYResolution.

A file-based data source, such as shapefiles, CAD and SDC, that has an UnknownCoordinateSystem and that has an X coordinate data extent that falls between +/-400, will use a tolerance in degrees corresponding to 1mm along the equator (8.98315284119522E-09 degrees).

Product Availability

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

Specified by:
setDefaultXYTolerance in interface ISpatialReferenceTolerance
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setMinimumXYTolerance

public void setMinimumXYTolerance()
                           throws IOException,
                                  AutomationException
Sets the xy cluster tolerance to be 2.0 * resolution. Use this value for compatibility with pre-9.2 topological and relational operators.

Remarks

The SetMinimumXYTolerance method sets the tolerance to the value of the spatial reference's grid resolution (or 2.0 * XYResolution). Setting the XYTolerance using this method provides a mechanism to maintain backward compatibility with ArcGIS 9.1 geometric and relational operators. At version 9.1 and before, this is the only tolerance value used by geometric and relational operators.

Product Availability

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

Specified by:
setMinimumXYTolerance in interface ISpatialReferenceTolerance
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getXYTolerance

public double getXYTolerance()
                      throws IOException,
                             AutomationException
The xy tolerance used to control point coalescing in the X and Y dimensions.

Remarks

The XYTolerance property is the planar cluster tolerance associated with a spatial reference that will be used by geometric and relational operators. It has the same meaning as the cluster tolerance parameter presented in other parts of ArcGIS, including topology and Geoprocessing. The default value is 1mm (scaled to whatever units are associated with the spatial reference) for ProjectedCoordinateSystems and UnknownCoordinateSystems, and the angle corresponding to 1mm along the equator for geographic coordinate systems.

Setting the XYTolerance using this property provides finer control than SetDefaultXYTolerance or SetMinimumXYTolerance.

The minimum allowable XYTolerance is 2.0 * XYResolution. XYTolerance is undefined (NaN) by after creating a spatial reference. Operations on the spatial reference that define its coordinate grid will set the tolerance to its minimum value if its currently NaN. The tolerance is not modified if the grid resolution changes. To ensure that the XYTolerance specified is valid, use XYToleranceValid.

Product Availability

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

Specified by:
getXYTolerance in interface ISpatialReferenceTolerance
Returns:
The xYTolerance
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setXYTolerance

public void setXYTolerance(double xYTolerance)
                    throws IOException,
                           AutomationException
The xy tolerance used to control point coalescing in the X and Y dimensions.

Product Availability

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

Specified by:
setXYTolerance in interface ISpatialReferenceTolerance
Parameters:
xYTolerance - The xYTolerance (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setDefaultZTolerance

public void setDefaultZTolerance()
                          throws IOException,
                                 AutomationException
Sets the default value for the Z cluster tolerance used to control point coalescing strictly along the Z axis (the equivalent of 1 mm in the current vertical coordinate system units).

Remarks

The SetDefaultZTolerance method establishes the default value for the ZTolerance. Any established tolerance will not automatically be changed by changing the units of the spatial reference. The default value is 1mm (scaled to whatever units are associated with the spatial reference's vertical coordinate system).

The minimum allowable ZTolerance is 2.0 * ZResolution.

Product Availability

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

Specified by:
setDefaultZTolerance in interface ISpatialReferenceTolerance
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setMinimumZTolerance

public void setMinimumZTolerance()
                          throws IOException,
                                 AutomationException
Sets the minimum value for the Z cluster tolerance (i.e., pre 9.2) used to control point coalescing strictly along the Z axis (the equivalent of 1 mm in the current vertical coordinate system units).

Remarks

The SetMinimumZTolerance method sets the ZTolerance to 2.0 * z resolution. Setting the ZTolerance using this method provides a mechanism to maintain backward compatibility with ArcGIS 9.1 geometric and relational operators. At 9.1 and before, this is the only tolerance value used by the geometric and relational operators.

The ZResolution should be defined before calling SetMinimumZTolerance.

Product Availability

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

Specified by:
setMinimumZTolerance in interface ISpatialReferenceTolerance
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getZTolerance

public double getZTolerance()
                     throws IOException,
                            AutomationException
The tolerance used to control point coalescing strictly along the Z axis.

Remarks

The ZTolerance property controls clustering of the z-values of coordinates. It currently is used only in the context of the topology validation operation. It is expressed in the spatial reference's vertical coordinate system units. Setting the ZTolerance using this property provides finer control than SetDefaultZTolerance or SetMinimumZTolerance.

The minimum allowable ZTolerance is 2 * ZResolution (defined by ISpatialReferenceResolution::ZResolution). To ensure that the ZTolerance specified is valid, use ZToleranceValid after setting the ZTolerance using this property.

The ZTolerance is undefined (NaN) by default. Methods that define the z coordinate grid will set the z tolerance to the minimum value if it isn't currently defined

Product Availability

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

Specified by:
getZTolerance in interface ISpatialReferenceTolerance
Returns:
The zTolerance
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setZTolerance

public void setZTolerance(double zTolerance)
                   throws IOException,
                          AutomationException
The tolerance used to control point coalescing strictly along the Z axis.

Product Availability

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

Specified by:
setZTolerance in interface ISpatialReferenceTolerance
Parameters:
zTolerance - The zTolerance (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setDefaultMTolerance

public void setDefaultMTolerance()
                          throws IOException,
                                 AutomationException
Sets the default tolerance used to determine equality of M values (2.0 * m resolution).

Remarks

The SetDefaultMTolerance method establishes the default value for the M tolerance. The default value is 0.001 units.

The minimum allowable MTolerance is 2.0 * MResolution.

If the value specified by SetDefaultMTolerance is not greater than or equal to 2.0 * MResolution, the MTolerance will be set at 2.0 * MResolution.

Product Availability

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

Specified by:
setDefaultMTolerance in interface ISpatialReferenceTolerance
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setMinimumMTolerance

public void setMinimumMTolerance()
                          throws IOException,
                                 AutomationException
Sets the minimum tolerance (i.e., pre 9.2) used to determine equality of M values (2.0 * m resolution).

Remarks

The SetMinimumMTolerance method sets the tolerance to the value of the spatial reference's grid resolution (or 2.0 * M resolution). Setting the MTolerance using this method provides a mechanism to maintain backward compatibility with ArcGIS 9.1 geometric and relational operators. At 9.1 and before, this is the only tolerance value used by measure or linear referencing aware operations in the geometry system.

Product Availability

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

Specified by:
setMinimumMTolerance in interface ISpatialReferenceTolerance
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getMTolerance

public double getMTolerance()
                     throws IOException,
                            AutomationException
The tolerance used to determine equality of M values.

Remarks

The MTolerance method establishes or retrieves the value for the MTolerance of the spatial reference. Setting the MTolerance using this property provides finer control than SetDefaultMTolerance or SetMinimumMTolerance.

The minimum allowable MTolerance is 2.0 * MResolution. To ensure that the MTolerance specified is valid, use MToleranceValid after setting the MTolerance using this property.

The MTolerance is undefined (NaN) by default.

Product Availability

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

Specified by:
getMTolerance in interface ISpatialReferenceTolerance
Returns:
The mTolerance
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setMTolerance

public void setMTolerance(double mTolerance)
                   throws IOException,
                          AutomationException
The tolerance used to determine equality of M values.

Remarks

The MTolerance method establishes or retrieves the value for the MTolerance of the spatial reference. Setting the MTolerance using this property provides finer control than SetDefaultMTolerance or SetMinimumMTolerance.

The minimum allowable MTolerance is 2.0 * MResolution. To ensure that the MTolerance specified is valid, use MToleranceValid after setting the MTolerance using this property.

The MTolerance is undefined (NaN) by default.

Product Availability

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

Specified by:
setMTolerance in interface ISpatialReferenceTolerance
Parameters:
mTolerance - The mTolerance (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getXYToleranceValid

public int getXYToleranceValid()
                        throws IOException,
                               AutomationException
Returns esriSRToleranceOK if the XY tolerance is well defined (not NaN) and >= the minimum XY tolerance.

Remarks

The xy grid resolution of a spatial reference can be altered independantly of the XYTolerance. Use this method to ensure that the current XYTolerance is defined and not less than the minimum legal value (2.0 * XYResolution).

Product Availability

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

Specified by:
getXYToleranceValid in interface ISpatialReferenceTolerance
Returns:
A com.esri.arcgis.geometry.esriSRToleranceEnum constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getZToleranceValid

public int getZToleranceValid()
                       throws IOException,
                              AutomationException
Returns true if the Z tolerance is well defined (not NaN) and >= the minimum Z tolerance.

Remarks

ZToleranceValid determines if the current ZTolerance associated with the spatial reference is valid. A ZTolerance is considered valid when it is well defined (not NaN) and the Z tolerance is greater than or equal to the minimum ZTolerance. The minimum allowable ZTolerance is 2.0 * ZResolution.

To ensure that the ZTolerance specified is valid, call ZToleranceValid after calling ISpatialReferenceTolerance::ZTolerance.

Product Availability

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

Specified by:
getZToleranceValid in interface ISpatialReferenceTolerance
Returns:
A com.esri.arcgis.geometry.esriSRToleranceEnum constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getMToleranceValid

public int getMToleranceValid()
                       throws IOException,
                              AutomationException
Returns true if the M tolerance is well defined (not NaN) and >= the minimum M tolerance.

Remarks

The MToleranceValid property determines if the current M tolerance associated with the spatial reference is valid. A M Tolerance is considered valid when it is well-defined (not NaN) and the M tolerance is greater than or equal to the minimum M tolerance. The minimum allowable MTolerance is 2.0 * MResolution.

To ensure that the MTolerance specified is valid, call MToleranceValid after calling ISpatialReferenceTolerance::MTolerance.

Product Availability

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

Specified by:
getMToleranceValid in interface ISpatialReferenceTolerance
Returns:
A com.esri.arcgis.geometry.esriSRToleranceEnum constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isXYToleranceEqual

public boolean isXYToleranceEqual(ISpatialReference otherSR)
                           throws IOException,
                                  AutomationException
Returns true if the XY tolerances of the two spatial references are the same.

Remarks

IsXYToleranceEqual will return True if both Spatial Reference XYTolerances are undefined (NaN) or if they are both defined and numerically equal.

Note that the IClone::IsEqual method on spatial references does not consider coordinate grid or tolerance properties. It only looks at the coordinate system part (i.e. projection information) part of the spatial reference.

Product Availability

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

Specified by:
isXYToleranceEqual in interface ISpatialReferenceTolerance
Parameters:
otherSR - A reference to a com.esri.arcgis.geometry.ISpatialReference (in)
Returns:
The isXYToleranceEqual
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isMToleranceEqual

public boolean isMToleranceEqual(ISpatialReference otherSR)
                          throws IOException,
                                 AutomationException
Returns true if the measure tolerances of the two spatial references are the same.

Remarks

IsMToleranceEqual will return True if both Spatial Reference MTolerances are undefined (NaN) or if they are both defined and numerically equal.

Note that the IClone::IsEqual method on spatial references does not consider coordinate grid or tolerance properties. It only looks at the coordinate system part (i.e. projection information) of the spatial reference.

Product Availability

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

Specified by:
isMToleranceEqual in interface ISpatialReferenceTolerance
Parameters:
otherSR - A reference to a com.esri.arcgis.geometry.ISpatialReference (in)
Returns:
The isMToleranceEqual
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isZToleranceEqual

public boolean isZToleranceEqual(ISpatialReference otherSR)
                          throws IOException,
                                 AutomationException
Returns true if the Z tolerances of the two spatial references are the same.

Remarks

IsZToleranceEqual will return True if both Spatial Reference Z Tolerances are undefined (NaN)or if they are both defined and numerically equal.

Note that the IClone::IsEqual method on spatial references does not consider coordinate grid or tolerance properties. It only looks at the coordinate system part (i.e. projection information) part of the spatial reference.

Product Availability

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

Specified by:
isZToleranceEqual in interface ISpatialReferenceTolerance
Parameters:
otherSR - A reference to a com.esri.arcgis.geometry.ISpatialReference (in)
Returns:
The isZToleranceEqual
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

constructFromHorizon

public void constructFromHorizon()
                          throws IOException,
                                 AutomationException
Defines the XY resolution and domain extent of this spatial reference based on the extent of its horizon. Low precision SRs will have minimum resolution of 1/10mm in current units.

Remarks

ConstructFromHorizon defines a domain extent and resolution sufficient to cover the horizon of a given coordinate system for high precision spatial references. For low-precision spatial references the domain extent is centered on the horizon center. It does not define an extent for the Z- or M-domains; for these use methods available on ISpatialReference.

Projected Coordinate Systems

For a high precision ProjectedCoordinateSystem (PCS), ConstructFromHorizon defines the domain extent to be a square completely covering, and slightly larger than, the horizon extent of the PCS (which is an arbitrary rectangle). The scale factor (1/precision) is chosen to fit this domain.

For a low precision PCS, the center of the domain extent is aligned with the center of the horizon extent and expanded to achieve a target resolution of 1mm.

The example below lists high and low precision extents for WGS 1984 UTM Zone 11N.

Name Low Precision ProjectedCoordinateSystem High Precision ProjectedCoordinateSystem
MinX -573,741.824 -5,120,900.0
MinY -1,073,741.824 -9,998,100.0
MaxX 1,573,741.823 14,875,300.0
MaxY 1,073,741.823 9,998,100.0
Resolution 0.001 2.2 x 10^-9

Geographic Coordinate Systems

For a high precision GeographicCoordinateSystem (GCS), ConstructFromHorizon produces the square domain (-400, -400, 400, 400) (expressed in the units of the SR).

For a low precision GCS the upper right hand corner is adjusted to achieve a default resolution of 1/500 of an arc-second.

Name Low Precision GeographicCoordinateSystem High Precision GeographicCoordinateSystem
MinX -400 -400
MinY -400 -400
MaxX 793.046469444444 400
MaxY 793.046469444444 400
Resolution 5.55555555555556E-07 (1/500 arc-second) 8.8 x 10^-14

Unknown Coordinate Systems

For an UnknownCoordinateSystem (UCS), the "horizon" is defined to be a square that produces a resolution of 1 millimeter for a low precision UCS or 1/10 mm for a high precision UCS.

The example below lists high and low precision extents for an UnknownCoordinateSystem.

Name Low Precision UnknownCoordinateSystem High Precision UnknownCoordinateSystem
MinX -1,073,741.8245 -450,359,962,737.05
MinY -1,073,741.8245 -450,359,962,737.05
MaxX 1,073,741.8225 450,359,962,737.049
MaxY 1,073,741.8225 450,359,962,737.049
Resolution 0.001 0.0001

Product Availability

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

Specified by:
constructFromHorizon in interface ISpatialReferenceResolution
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setXYResolution

public void setXYResolution(boolean bStandardUnits,
                            double xYResolution)
                     throws IOException,
                            AutomationException
The XY resolution (distance in SR units between distinguishable grid points) of this spatial reference. Reported in meters for PCS/UCS and degrees for GCS when bStandardUnits is true or in current units of SR when it is false.

Product Availability

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

Specified by:
setXYResolution in interface ISpatialReferenceResolution
Parameters:
bStandardUnits - The bStandardUnits (in)
xYResolution - The xYResolution (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getXYResolution

public double getXYResolution(boolean bStandardUnits)
                       throws IOException,
                              AutomationException
The XY resolution (distance in SR units between distinguishable grid points) of this spatial reference. Reported in meters for PCS/UCS and degrees for GCS when bStandardUnits is true or in current units of SR when it is false.

Product Availability

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

Specified by:
getXYResolution in interface ISpatialReferenceResolution
Parameters:
bStandardUnits - The bStandardUnits (in)
Returns:
The xYResolution
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setDefaultXYResolution

public void setDefaultXYResolution()
                            throws IOException,
                                   AutomationException
defaults: PCS(hi): 1/10 mm; PCS(lo): 1 mm; GCS(hi): 1/10,000 arc-second; GCS(lo): 1/500 arc-second; UCS(hi): 1/10 mm (assumed); UCS(lo): 1 mm (assumed).

Remarks

SetDefaultXYResolution recalculates the maximum x and y coordinates for the domain of the spatial reference in order to achieve a target resolution of 1 millimeter for low precision ProjectedCoordinateSystems or 1/10 millimeter for high precision. For high precision GeographicCoordinateSystems, the target resolution is 1/10,000 of an arc-second and the low precision target resolution is 1/500 of an arc-second. For UnknownCoordinateSystems, the high precision target resolution is 1/10 millimeter and the low precision target resolution is 1 millimeter. Resolutions are listed here in metric units but are converted to the units of the spatial reference by these methods.

Use the ISpatialReferenceResolution::XYResolution(False) property to specify the target resolution in units defined by the spatial reference.

Product Availability

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

Specified by:
setDefaultXYResolution in interface ISpatialReferenceResolution
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setZResolution

public void setZResolution(boolean bStandardUnits,
                           double zResolution)
                    throws IOException,
                           AutomationException
The Z resolution (height/depth distance between distinguishable grid points) of this spatial reference. Reported in meters when bStandardUnits is true or in current units of SR when it is false.

Product Availability

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

Specified by:
setZResolution in interface ISpatialReferenceResolution
Parameters:
bStandardUnits - The bStandardUnits (in)
zResolution - The zResolution (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getZResolution

public double getZResolution(boolean bStandardUnits)
                      throws IOException,
                             AutomationException
The Z resolution (height/depth distance between distinguishable grid points) of this spatial reference. Reported in meters when bStandardUnits is true or in current units of SR when it is false.

Product Availability

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

Specified by:
getZResolution in interface ISpatialReferenceResolution
Parameters:
bStandardUnits - The bStandardUnits (in)
Returns:
The zResolution
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setDefaultZResolution

public void setDefaultZResolution()
                           throws IOException,
                                  AutomationException
Sets the z coordinate grid resolution to 1 mm for a low precision spatial reference or 1/10 mm for a high precision spatial reference.

Remarks

This method behaves analogously to the SetDefaultXYResolution method, but operates on the linear z coordinate grid. For a high-precision spatial reference the default ZResolution is 0.0001 meters (expressed in the units defined by the VCS if applicable); for a low-precision spatial reference the default ZResolution is 0.001 units.

Product Availability

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

Specified by:
setDefaultZResolution in interface ISpatialReferenceResolution
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setMResolution

public void setMResolution(double interval)
                    throws IOException,
                           AutomationException
The M, or measure, resolution of this spatial reference.

Product Availability

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

Specified by:
setMResolution in interface ISpatialReferenceResolution
Parameters:
interval - The interval (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getMResolution

public double getMResolution()
                      throws IOException,
                             AutomationException
The M, or measure, resolution of this spatial reference.

Remarks

MResolution resizes the existing grid about its center to accommodate the new resolution specified. This property provides finer control for specifying the resolution than does ISpatialReferenceResolution::SetDefaultMResolution. The default MResolution is defined as 0.001 units for high and low precision spatial references.

The default value for MResolution is NaN for a new spatial reference. If the MResolution is not well-defined (MResolution is NaN), calls to ISpatialReference::SetMDomain or ISpatialReference::SetMFalseOriginAndUnits will set the MResolution to the minimum allowable value (2.0/mUnits). If the MResolution was already defined, these methods will not alter the MResolution.

Product Availability

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

Specified by:
getMResolution in interface ISpatialReferenceResolution
Returns:
The interval
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

setDefaultMResolution

public void setDefaultMResolution()
                           throws IOException,
                                  AutomationException
Sets the m coordinate grid resolution to 1 mm for a low precision spatial reference or 1/10 mm for a high precision spatial reference.

Remarks

This method behaves analogously to the SetDefaultXYResolution method, but operates on the linear m coordinate grid. For a high-precision spatial reference the default MResolution is 0.0001 units; for a low-precision spatial reference the default MResolution is 0.001 units.

Product Availability

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

Specified by:
setDefaultMResolution in interface ISpatialReferenceResolution
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

constructFromEnvelope

public void constructFromEnvelope(IEnvelope pEnvelope)
                           throws IOException,
                                  AutomationException
Constructs the smallest, high precision, standard UCS that will completely contain the specified envelope.

Product Availability

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

Specified by:
constructFromEnvelope in interface IConstructUnknownCoordinateSystem
Parameters:
pEnvelope - A reference to a com.esri.arcgis.geometry.IEnvelope (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

writeExternal

public void writeExternal(ObjectOutput out)
                   throws IOException
Specified by:
writeExternal in interface Externalizable
Throws:
IOException

readExternal

public void readExternal(ObjectInput in)
                  throws IOException,
                         ClassNotFoundException
Specified by:
readExternal in interface Externalizable
Throws:
IOException
ClassNotFoundException