Describes a coordinate system for georeferencing.
sealed class
|
CoordinateSystem
|
extends
|
GeoObject
|
A
geographic
coordinate
system
(IsGeographic
is
true
)
has
the
following
X
and
Y
axes:
X
:
Geodetic
longitude
Y
:
Geodetic
latitude
true
)
has
the
following
X
and
Y
axes:
X
:
Easting
Y
:
Northing
Z
axis
for
a
coordinate
system
is
(Vertical
is
null
):
Z
:
Ellipsoidal
height
null
)
have
a
different
Z
axis,
usually
gravity-related
height
or
depth.
The configurator object for this type.
public
static
property
|
Config
{
get
}
|
||
type
|
IConfigurator<CoordinateSystem>
|
||
value
|
|
The configurator object. |
The configuration type for CoordinateSystemFlags values.
public
static
readonly
field
|
ConfigFlags
|
||
type
|
IConfigurator<CoordinateSystemFlags>
|
Returns the configuration value that describes this object.
public
override
method
|
ToConfig
()
|
||
type
|
ConfigValue
|
||
returns
|
|
The configuration value. | |
overrides
|
GeoObject.ToConfig
|
Remarks:
All configurable objects need to implement this interface. For simple types, it is preferable to delegate to ToValue.
The returned value may be of type Invalid, which means that this object in its current state cannot be described with the configuration API.
Before returning the resulting configuration value, Cache must be called on it, passing this IConfigurable object as parameter.
Serialization information about this type.
public
static
readonly
field
|
SerialId
|
||
type
|
ISerialTypeInfo
|
Non-specified local coordinate system sing metric units.
public
static
readonly
field
|
Local
|
||
type
|
CoordinateSystem
|
WGS 84 / Pseudo-Mercator
public
static
readonly
field
|
PopularMercator
|
||
type
|
CoordinateSystem
|
Remarks:
This coordinate system is used by popular web mapping applications.
World Geodetic System 1984
public
static
readonly
field
|
WGS84
|
||
type
|
CoordinateSystem
|
Returns the map bounds of Face for this datum coordinate system.
public
property
|
FaceBounds
{
get
}
|
||
type
|
Box2D
|
||
value
|
The map bounds. |
The coordinate system flags.
public
property
|
Flags
{
get
}
|
||
type
|
CoordinateSystemFlags
|
||
value
|
The flags. |
The geodetic datum this coordinate system is based upon.
public
property
|
Geographic
{
get
}
|
||
type
|
GeodeticDatum
|
||
value
|
The
geodetic
datum
or
null . |
The unit of measure used for geographic coordinates.
public
property
|
GeographicUnit
{
get
}
|
||
type
|
UnitOfMeasure
|
||
value
|
The
unit
of
measure
or
null
if
Geographic
is
null .
|
Returns the horizontal unit of measure.
public
property
|
HorizontalUnit
{
get
}
|
||
type
|
UnitOfMeasure
|
||
value
|
|
The horizontal unit of measure. |
Remarks:
Depending on the coordinate system type, the horizontal unit of measure is either the local unit, projected unit or the unit of the ellipsoid of the geodetic datum.
Is this a geographic coordinate system?
public
property
|
IsGeographic
{
get
}
|
||
type
|
bool
|
||
value
|
true
if
this
coordinate
system
is
geographic,
false
if
not. |
Remarks:
Geographic coordinate system use geographic coordinates (latitude, longitude), which are specified in angular units. A coordinate system can either be geographic, projected or local.
Is this a local coordinate system?
public
property
|
IsLocal
{
get
}
|
||
type
|
bool
|
||
value
|
true
if
this
coordinate
system
is
local,
false
if
not. |
Remarks:
Local coordinate systems use custom map coordinates, which are specified in length units. A coordinate system can either be geographic, projected or local.
Is this a projected coordinate system?
public
property
|
IsProjection
{
get
}
|
||
type
|
bool
|
||
value
|
true
if
this
coordinate
system
is
projected,
false
if
not. |
Remarks:
Projected coordinate systems use map coordinates (easting, northing), which are specified in length units. A coordinate system can either be geographic, projected or local.
Does this coordinate system include vertical coordinates that are different than ellipsoid height?
public
property
|
IsVertical
{
get
}
|
||
type
|
bool
|
||
value
|
true
if
this
coordinate
system
is
non-ellipsoidal
vertical,
false
if
not.
|
The unit of measure used for local coordinates.
public
property
|
LocalUnit
{
get
}
|
||
type
|
UnitOfMeasure
|
||
value
|
The
unit
or
measure
or
null
if
IsLocal
is
false . |
The human-readable name of this object.
public
property
|
Name
{
get
}
|
||
type
|
string
|
||
value
|
|
The object name. | |
inherited
|
GeoObject.Name
|
The map projection that translates between geographic coordinates (latitude, longitude) and map coordinates (easting, northing).
public
property
|
Projection
{
get
}
|
||
type
|
ICoordinateOperation
|
||
value
|
The
coordinate
operation
or
null . |
The unit of measure used for projected coordinates.
public
property
|
ProjectionUnit
{
get
}
|
||
type
|
UnitOfMeasure
|
||
value
|
The
unit
of
measure
or
null
if
Projection
is
null .
|
Returns the serial type of this object.
public
property
|
SerialType
{
get
}
|
||
type
|
ISerialTypeInfo
|
||
value
|
|
The serial type. | |
inherited
|
SerializableBase.SerialType
|
Returns the serial data version.
public
virtual
property
|
SerialVersion
{
get
}
|
||
type
|
int32
|
||
value
|
|
The serial data version tag. | |
inherited
|
SerializableBase.SerialVersion
|
Remarks:
An ISerializable implementation is required to support all versions up to the one returned by SerialVersion.
See also:
ISerializable.SerializeThe type of this geo object.
public
property
|
Type
{
get
}
|
||
type
|
GeoObjectType
|
||
value
|
The geo object type. | ||
inherited
|
GeoObject.Type
|
The vertical datum this coordinate system is based upon.
public
property
|
Vertical
{
get
}
|
||
type
|
VerticalDatum
|
||
value
|
The
vertical
datum
or
null
if
ellipsoid
height
is
used. |
The unit of measure used for vertical coordinates.
public
property
|
VerticalUnit
{
get
}
|
||
type
|
UnitOfMeasure
|
||
value
|
|
The unit of measure of vertical coordinates. |
Creates a new instance of CoordinateSystem.
public
constructor
|
CoordinateSystem
(GeodeticDatum geographic,
ICoordinateOperation projection = null,
VerticalDatum vertical = null,
UnitOfMeasure geographicUnit = null,
UnitOfMeasure projectionUnit = null,
UnitOfMeasure verticalUnit = null,
UnitOfMeasure localUnit = null,
CoordinateSystemFlags flags = CoordinateSystemFlags.None,
string name = null)
|
||
params
|
geographic
|
The geodetic datum. | |
projection
|
The
map
projection
that
translates
between
geographic
coordinates
(latitude,
longitude)
and
map
coordinates
(easting,
northing)
or
null
if
the
coordinate
system
does
not
define
a
projection.
Defaults
to
null .
|
||
vertical
|
The
vertical
datum
or
null
if
the
coordinate
system
uses
ellipsoid
height.
Defaults
to
null .
|
||
geographicUnit
|
The
unit
of
geographic
coordinates.
If
null ,
Degree
will
be
used.
Defaults
to
null .
|
||
projectionUnit
|
The
unit
of
map
coordinates.
If
null ,
Metre
will
be
used.
Defaults
to
null .
|
||
verticalUnit
|
The
unit
of
vertical
coordinates.
If
null ,
Metre
will
be
used.
Defaults
to
null .
|
||
localUnit
|
The
unit
of
local
coordinates.
If
null ,
Metre
will
be
used.
Defaults
to
null .
|
||
flags
|
The coordinate system flags. Defaults to None. | ||
name
|
Human-readable
name
of
the
coordinate
system.
If
empty
or
null,
UserDefined
will
be
used
instead.
Defaults
to
null .
|
Creates a new instance of CoordinateSystem based on the given OpenGIS WKT description.
public
static
method
|
FromWkt
(string wkt,
IGeoRegistry registry = null,
ICoordinateOperation coordinateOperation = null)
|
||
type
|
CoordinateSystemWkt
|
||
params
|
wkt
|
[not-null]
|
The OpenGIS WKT description. |
registry
|
The
GeoRegistry
to
use
for
looking
up
well-known
entities.
If
a
well-known
entity
has
been
found
in
the
registry,
it
is
used
instead
of
the
entity
that
is
described
in
the
WKT
source.
If
null ,
lookup
will
be
disabled
and
only
the
WKT
entity
descriptions
will
be
used.
Defaults
to
null .
|
||
coordinateOperation
|
The
coordinate
operation
to
use
instead
of
the
[PROJECTION]
clause
in
wkt.
Defaults
to
null .
|
||
returns
|
|
The coordinate system description. |
Remarks:
The given string must match the following Grammar:
wkt := value ; obj := id !> open values close ; !value := obj | str | num ; values := value (',' value)* ; !id := letter (letter | digit)* ; num := '-'? digit+ ('.' digit+)? ; !close := '\]' | ')' ; digit := '0'..'9' ; letter := 'a'..'z' | 'A'..'Z' | '_' ; !open := '\[' | '(' ; str := '"' ]"[* '"' ;
Creates a ICoordinateTransform for this projected coordinate system.
public
method
|
CreateCoordinateTransform
()
|
||
type
|
ICoordinateTransform
|
||
returns
|
|
The coordinate transform. If this coordinate system is not projected, the returned transform will map latitude to northing and longitude to easting (identity transform). |
Initializes the state of this object from the given data stream.
public
override
method
|
Deserialize
(int32 serialVersion,
ISerializer data)
|
||
type
|
ISerializable
|
||
params
|
serialVersion
|
[>=1]
|
The serial data version. |
data
|
[not-null]
|
The serial data stream. | |
returns
|
|
The
deserialized
object.
This
will
typically
be
this ,
but
in
some
circumstances,
another
instance
may
be
returned
(e.g.
singletons).
|
|
overrides
|
GeoObject.Deserialize
|
Remarks:
The Deserialize method will be called immediately after the object has been instantiated via its default constructor.
The provided serialVersion number is guaranteed to be equal to or less than the SerialVersion returned by this object (i.e. ISerializable object must provide backwards compatibility).
See also:
ISerializable.SerializeCompares this object with the given one.
[Pure]
|
||||
public
override
method
|
Equals
(IGeoObject other)
|
|||
type
|
bool
|
|||
params
|
other
|
The object to compare to. | ||
returns
|
true
if
this
object
is
equal
to
other,
false
if
not.
|
|||
overrides
|
GeoObject.Equals
|
Compares this object with the given one.
[Pure]
|
||||
public
override
sealed
method
|
Equals
(object other)
|
|||
type
|
bool
|
|||
params
|
other
|
The object to compare to. | ||
returns
|
true
if
this
object
is
equal
to
other,
false
if
not.
|
|||
inherited
|
GeoObject.Equals
|
[Pure]
|
||||
public
override
sealed
method
|
GetHashCode
()
|
|||
type
|
int32
|
|||
inherited
|
GeoObject.GetHashCode
|
Serializes the current state of this object to the given data stream.
public
override
method
|
Serialize
(ISerializer data)
|
||
params
|
data
|
[not-null]
|
The serial data stream. |
overrides
|
GeoObject.Serialize
|
See also:
ISerializable.DeserializeCreates a cubemap face geographic coordinate system based on this coordinate system.
public
method
|
ToCubemapFace
(CubemapFace face)
|
||
type
|
CoordinateSystem
|
||
params
|
face
|
The cubemap face. | |
returns
|
|
The resulting coordinate system. |
Remarks:
First, the projection is removed (if present). Then, a cubemap face projection (see Face) is constructed based on the ellipsoid.
Returns the plain geographic coordinate system by removing the projection.
public
method
|
ToGeographic
()
|
||
type
|
CoordinateSystem
|
||
returns
|
|
The resulting coordinate system. |
[Pure]
|
||||
public
override
sealed
method
|
ToString
()
|
|||
type
|
string
|
|||
inherited
|
GeoObject.ToString
|
Updates the vertical components of this coordinate system.
public
method
|
ToVertical
(UnitOfMeasure unit = null,
VerticalDatum datum = null)
|
||
type
|
CoordinateSystem
|
||
params
|
unit
|
The
vertical
unit.
If
null ,
Metre
will
be
used.
Defaults
to
null .
|
|
datum
|
The
vertical
datum
(see
Vertical).
Defaults
to
null .
|
||
returns
|
|
The resulting coordinate system. |