Home    |    Concepts   |   API   |   Samples
Concepts > Geometry > Coordinate References > Coordinate Systems
Basic Principles

What is a coordinate system?

A coordinate system is a recognized reference system for the unique location of a point in space. It is usually defined by a map projection, a spheroid of reference, a datum, one or more standard parallels, a central meridian, and possible shifts in the X and Y directions to locate X,Y positions of point, line, and area features. The Cartesian coordinate system and the system of latitude and longitude of the earth are examples of coordinate systems based upon Euclidean geometry.

A coordinate system also defines the location of a point on a planar or spherical surface. Without a concise definition of the coordinate system used to represent a point, it is difficult to change to a new coordinate system. Changing coordinate systems is required when integrating data from different sources into a common coordinate system.

There are several types of coordinate systems:

  • Geographic coordinate system
  • Projected coordinate system
  • Vertical coordinate system

Coordinate systems in ArcSDE

In ArcSDE, the Projection Engine defines and transforms coordinate systems for the Spatial Database Engine. The Projection Engine supports predefined and application-defined coordinate systems. Predefined coordinate systems are accessed with integer codes stored in files internal to the API. You can create your own coordinate system by using the Projection Engine API.

The central object in the Projection Engine is the coordinate system (PE_COORDSYS). A PE_COORDSYS contains the pieces necessary to define the coordinate system.

A coordinate system is created by defining the components. Once defined, a handle is returned that can be used to reference the PE_COORDSYS object. You can create a persistent definition of a PE_COORDSYS object by storing a string definition of the object. The Projection Engine can take this string definition and create a PE_COORDSYS from it.

The following example is the string representation of the California State Plane Zone #1, which is a projected coordinate system.

PROJCS["NAD_1983_California_I",GEOGCS["GCS_North_American_1983", DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137,298.257222101]], PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]], PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000], PARAMETER["False_Northing",500000],PARAMETER["Central_Meridian",122], PARAMETER["Standard_Parallel_1",40],PARAMETER["Standard_Parallel_2", 41.66666666666666],PARAMETER["Latitude_Of_Origin",39.33333333333334], UNIT["Meter",1]]

The following example is a string representing a geographic coordinate system based on the WGS 1984 datum.

GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137, 298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]]

The coordinate system for a layer is stored in the LAYERS table as a text string that may be as long as 1024 characters.

Architecture

The impetus for the Projection Engine was to create a core engine to manage coordinate system creation and transformation. It is designed to be integrated into applications. The API exposes all of the necessary data structures.

The core mathematics accepts points only, so feature managers are needed to manipulate the features. Solutions to problems such as closing features that have been broken by crossing a projection horizon, are maintained by the feature managers rather than the core engine.

Data model

The Projection Engine uses a model developed by POSC (Petrotechnical Open Software Corporation), a consortium of oil and gas companies, which simplifies the various pieces that compose a coordinate system. A related organization, EPGS (European Petroleum Survey Group), has compiled a large set of coordinate systems and the objects needed to define them. Each object has a unique integer code. For example, the code for international meters is 9001 while the WGS84 datum is 6326. A coordinate system will have a single ID. The Projection Engine uses the code to create a coordinate system object.

To ensure that the most recent version of the EPSG files are always available, the European Petroleum Survey Group has requested that only one site carry the files. The files are available in three different formats at http://www.epsg.org

A coordinate system is an object composed of objects which are opaque pointers. A data set will be in either a geographic or a projected coordinate system. A geographic coordinate system (GCS) is in latitude-longitude coordinates. A GCS consists of a datum, a prime meridian, and an angular unit of measure. The datum is in turn defined by the spheroid of the system. A projected coordinate system (PCS) is in xy coordinates. A PCS is defined by a GCS, a map projection, a linear unit of measure, and the map projection's parameters. You can see all predefined objects supported by the Projection Engine in the pedef.h file, which can be found in the include directory under the ArcSDE home directory of the C API. Projected and geographic coordinate system definitions can also be accessed from http://help.arcgis.com/en/webapi/javascript/arcgis/help/jshelp/ref_coordsystems.htm.

feedback | privacy | legal