[
https://issues.apache.org/jira/browse/SIS-317?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Martin Desruisseaux updated SIS-317:
------------------------------------
Description:
According the ISO 19111 standard, ellipsoidal heights can not be represented by
standalone {{VerticalCRS}} instances. Instead they need to be part of a
three-dimensional {{GeographicCRS}} instance. Version 2 of Well Known Text
(WKT) format follows this specification, but version 1 had a different model.
In WKT 1, three-dimensional {{GeographicCRS}} did not existed (it is not even
possible to represent such CRS in WKT 1 because of heterogeneous units of
measurement). Instead, WKT 1 used a {{CompoundCRS}} made of a two-dimensional
{{GeographicCRS}} followed by a {{VerticalCRS}}.
*Example (WKT 2 format):*
{noformat}
GEODCRS[“WGS 84 (3D)”,
DATUM[“World Geodetic System 1984”,
ELLIPSOID[“WGS84”, 6378137.0, 298.257223563, LENGTHUNIT[“metre”, 1]]],
PRIMEM[“Greenwich”, 0.0, ANGLEUNIT[“degree”, 0.017453292519943295]],
CS[ellipsoidal, 3],
AXIS[“Longitude (L)”, east, ORDER[1], ANGLEUNIT[“degree”,
0.017453292519943295]],
AXIS[“Latitude (B)”, north, ORDER[2], ANGLEUNIT[“degree”,
0.017453292519943295]],
AXIS[“Ellipsoidal height (h)”, up, ORDER[3], LENGTHUNIT[“metre”, 1]],
AREA[“World”],
BBOX[-90.00, -180.00, 90.00, 180.00]]
{noformat}
*Same example than above, but using WKT 1 format:*
{noformat}
COMPD_CS[“WGS 84 (3D)”,
GEOGCS[“WGS 84”,
DATUM[“World Geodetic System 1984”,
SPHEROID[“WGS84”, 6378137.0, 298.257223563]],
PRIMEM[“Greenwich”, 0.0],
UNIT[“degree”, 0.017453292519943295],
AXIS[“Longitude”, EAST],
AXIS[“Latitude”, NORTH]],
VERT_CS[“Ellipsoidal height”,
VERT_DATUM[“Ellipsoid”, 2002],
UNIT[“metre”, 1],
AXIS[“Ellipsoidal height”, UP]]]
{noformat}
The WKT 1 structure is illegal in today's model, so we need to create it
temporarily only during WKT 1 formatting and discard it immediately after.
Conversely, the WKT parser needs to convert the above-cited {{CompoundCRS}} to
a three-dimensional {{GeographicCRS}} on-the-fly.
was:
According the ISO 19111 standard, ellipsoidal heights can not be represented by
standalone {{VerticalCRS}} instances. Instead they need to be part of a
three-dimensional {{GeographicCRS}} instance. Version 2 of Well Known Text
(WKT) format follows this specification, but version 1 had a different model.
In WKT 1, three-dimensional {{GeographicCRS}} did not existed. It is not even
possible to represent such CRS in WKT 1 because of heterogeneous units of
measurement. Instead, WKT 1 used a {{CompoundCRS}} made of a two-dimensional
{{GeographicCRS}} followed by a {{VerticalCRS}}. Since such structure is
illegal in today's model, we need to create it temporarily only during WKT 1
formatting and discard it immediately after.
Conversely, the WKT parser needs to convert the above-cited {{CompoundCRS}} to
a three-dimensional {{GeographicCRS}} on-the-fly.
> On-the-fly Geographic3D ↔ CompoundCRS conversion when formatting WKT 1
> ----------------------------------------------------------------------
>
> Key: SIS-317
> URL: https://issues.apache.org/jira/browse/SIS-317
> Project: Spatial Information Systems
> Issue Type: Improvement
> Components: Referencing
> Affects Versions: 0.6
> Reporter: Martin Desruisseaux
> Assignee: Martin Desruisseaux
> Labels: WKT
> Fix For: 0.7
>
>
> According the ISO 19111 standard, ellipsoidal heights can not be represented
> by standalone {{VerticalCRS}} instances. Instead they need to be part of a
> three-dimensional {{GeographicCRS}} instance. Version 2 of Well Known Text
> (WKT) format follows this specification, but version 1 had a different model.
> In WKT 1, three-dimensional {{GeographicCRS}} did not existed (it is not even
> possible to represent such CRS in WKT 1 because of heterogeneous units of
> measurement). Instead, WKT 1 used a {{CompoundCRS}} made of a two-dimensional
> {{GeographicCRS}} followed by a {{VerticalCRS}}.
> *Example (WKT 2 format):*
> {noformat}
> GEODCRS[“WGS 84 (3D)”,
> DATUM[“World Geodetic System 1984”,
> ELLIPSOID[“WGS84”, 6378137.0, 298.257223563, LENGTHUNIT[“metre”, 1]]],
> PRIMEM[“Greenwich”, 0.0, ANGLEUNIT[“degree”, 0.017453292519943295]],
> CS[ellipsoidal, 3],
> AXIS[“Longitude (L)”, east, ORDER[1], ANGLEUNIT[“degree”,
> 0.017453292519943295]],
> AXIS[“Latitude (B)”, north, ORDER[2], ANGLEUNIT[“degree”,
> 0.017453292519943295]],
> AXIS[“Ellipsoidal height (h)”, up, ORDER[3], LENGTHUNIT[“metre”, 1]],
> AREA[“World”],
> BBOX[-90.00, -180.00, 90.00, 180.00]]
> {noformat}
> *Same example than above, but using WKT 1 format:*
> {noformat}
> COMPD_CS[“WGS 84 (3D)”,
> GEOGCS[“WGS 84”,
> DATUM[“World Geodetic System 1984”,
> SPHEROID[“WGS84”, 6378137.0, 298.257223563]],
> PRIMEM[“Greenwich”, 0.0],
> UNIT[“degree”, 0.017453292519943295],
> AXIS[“Longitude”, EAST],
> AXIS[“Latitude”, NORTH]],
> VERT_CS[“Ellipsoidal height”,
> VERT_DATUM[“Ellipsoid”, 2002],
> UNIT[“metre”, 1],
> AXIS[“Ellipsoidal height”, UP]]]
> {noformat}
> The WKT 1 structure is illegal in today's model, so we need to create it
> temporarily only during WKT 1 formatting and discard it immediately after.
> Conversely, the WKT parser needs to convert the above-cited {{CompoundCRS}}
> to a three-dimensional {{GeographicCRS}} on-the-fly.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)