Finds a spatial reference based upon its well known id (WKID) and optionally a WKID for a vertical datum (WKID_Z).
FindSRByWKID(string Authority, int WKID, int WKID_Z, bool DefaultXYResolution, bool DefaultXYTolerance)
Parameter |
Description |
Authority |
Usually "EPSG" or "ESRI", but can also be an arbitrary string. If empty, the default authority will be returned. |
WKID |
Integer that defines a well-known ID (WKID) for a spatial reference. For a list of valid EPSG and ESRI WKID codes, see the discussion Finding a Well-Known ID. |
WKID_Z |
Integer to define the vertical coordinate system. If WKID_Z > -1, then a vertical coordinate system will be created and associated with the horizontal coordinate system. If -1, no vertical coordinate system will be generated. |
DefaultXYResolution |
If true, then the XY coordinate grid resolution will be set to its default value (see the default XY resolution values table in the remarks section below). If false, the finest possible resolution that covers the horizon of the spatial reference will be used (see "Defining an XY resolution" in the remarks section below for details). |
DefaultXYTolerance |
If true, then the default XY tolerance of 1mm will be used (see "Default XY Tolerance calculations" in the remarks section below for details). If false, then the minimum allowable XY tolerance will be used (2.0 * XY resolution). |
Return Value
A SpatialReference object.
Remarks
Clients can associate their own authority names with factory codes that are currently associated with the EPSG or ESRI authority names, because only the WKID is used to create the spatial reference. Here are the current rules for mapping WKID ranges to default authority names:
A WKID in the EPSG code range (1000 &endash; 32768) will result in an AUTHORITY name of "EPSG".
A WKID in the ESRI code range (33000 &endash; 199999) will result in an AUTHORITY name of "ESRI".
A WKID in the user code range (200000 &endash; 209199) will result in an AUTHORITY name of "CUSTOM".
The returned WKT (well-known text) element
of the spatial reference will have an "AUTHORITY" tag in it,
containing the default or the client-specified authority name and the
specified WKID. For a list of valid EPSG and ESRI
WKID codes, see the discussion Finding
a Well-Known ID.
Default XY Resolution values
SpatialReference type |
Precision |
Default value |
ProjectedCoordinateSystem |
high |
1/10 mm |
ProjectedCoordinateSystem |
low |
1 mm |
GeographicCoordinateSystem |
high |
1/10,000 arc-second |
GeographicCoordinateSystem |
low |
1/500 arc-second |
UnknownCoordinateSystem |
high |
1/10 mm |
UnknownCoordinateSystem |
low |
1 mm |
Defining an
XY resolution
Defining an XY resolution for a spatial reference depends on the type and
precision of a coordinate system. For high precision
spatial references, the domain extent and resolution must be sufficient
to cover the horizon of a given coordinate system. For
low-precision spatial references the domain extent is centered on the
horizon center.
For a high precision ProjectedCoordinateSystem (PCS), the domain extent is 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.
For a high precision GeographicCoordinateSystem (GCS), the square domain (-400, -400, 400, 400), expressed in the units of the spatial reference, is used. For a low precision GCS the upper right hand corner is adjusted to achieve a default resolution of 1/500 of an arc-second.
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.
Default XY
Tolerance calculations
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 default XY tolerance is not greater than or equal to 2.0 * XYResolution, the XYTolerance will be set at 2.0 * XYResolution.
Examples