opengeospatial / ogc-feat-geo-json

Apache License 2.0
32 stars 14 forks source link

Support unknown CRS #36

Closed jratike80 closed 2 years ago

jratike80 commented 2 years ago

GeoPackage standard supports two undefined CRS

The record with an srs_id of -1 SHALL be used for
undefined Cartesian coordinate reference systems. The record with an srs_id of 0 SHALL be
used for undefined geographic coordinate reference systems.

Supporting at least undefined Cartesian coordinate systems would make it possible to use JSON-FG with engineering data like CAD drawings.

There are also coordinate reference systems that do not have authority codes from EPSG or elsewhere. If they cannot be expressed with for example WKT2 in JSON-FG they could at least be labeled as unknown.

cportele commented 2 years ago

Good points. This would require either special values or that that such CRSs are registered with the OGC Naming Authority, e.g. as http://www.opengis.net/def/crs/OGC/0/cartesian.

cportele commented 2 years ago

Meeting 2022-02-07: Agreement that adding such a capability is a good idea, also in order to support conversion of data between GeoPackage and JSON-FG. The details how to properly define such a CRS need more thought and then discussion with OGC-NA and the CRS DWG.

cportele commented 2 years ago

Here is a first attempt at a CRS definition for 3D:

<gml:EngineeringCRS xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" gml:id="engineering-3d" xsi:schemaLocation="http://www.opengis.net/gml/3.2 http://schemas.opengis.net/gml/3.2.1/gml.xsd">
  <gml:identifier codeSpace="OGC">engineering-3d</gml:identifier>
  <gml:name>Engineering CRS (3D) with an unknown origin and a Cartesian CS</gml:name>
  <gml:scope>
    A coordinate reference system used to describe spatial location over small areas of the Earth using a flat-Earth approximation of the Earth’s surface: corrections for Earth-curvature are not applied. Typical applications are for civil engineering construction and building information management. The origin of the datum is unknown.
  </gml:scope>
  <gml:cartesianCS>
    <gml:CartesianCS gml:id="cartesian-local-3d">
      <gml:identifier codeSpace="OGC">cartesian-local-3d</gml:identifier>
      <gml:name>Cartesian 3D CS (right-handed). Axes: x,y,z. Orientations: unspecified, unspecified, up. UoM: m.</gml:name>
      <gml:remarks>The location of the origin is unspecified. The direction of the first two axes is unspecified except that the three axes form a right-handed CRS. For use in engineering coordinate reference systems.</gml:remarks>
      <gml:axis>
        <gml:CoordinateSystemAxis gml:id="x-local" uom="http://www.opengis.net/def/uom/UCUM/0/m">
          <gml:identifier codeSpace="OGC">x-local</gml:identifier>
          <gml:remarks>For use in engineering coordinate reference systems.</gml:remarks>
          <gml:axisAbbrev>x</gml:axisAbbrev>
          <gml:axisDirection codeSpace="OGC">unspecified</gml:axisDirection>
        </gml:CoordinateSystemAxis>
      </gml:axis>
      <gml:axis>
        <gml:CoordinateSystemAxis gml:id="y-local" uom="http://www.opengis.net/def/uom/UCUM/0/m">
          <gml:identifier codeSpace="OGC">y-local</gml:identifier>
          <gml:remarks>For use in engineering coordinate reference systems.</gml:remarks>
          <gml:axisAbbrev>y</gml:axisAbbrev>
          <gml:axisDirection codeSpace="OGC">unspecified</gml:axisDirection>
        </gml:CoordinateSystemAxis>
      </gml:axis>
      <gml:axis>
        <gml:CoordinateSystemAxis gml:id="z-local" uom="http://www.opengis.net/def/uom/UCUM/0/m">
          <gml:identifier codeSpace="OGC">z-local</gml:identifier>
          <gml:remarks>For use in engineering coordinate reference systems.</gml:remarks>
          <gml:axisAbbrev>z</gml:axisAbbrev>
          <gml:axisDirection codeSpace="OGC">up</gml:axisDirection>
        </gml:CoordinateSystemAxis>
      </gml:axis>
    </gml:CartesianCS>
  </gml:cartesianCS>
  <gml:engineeringDatum>
    <gml:EngineeringDatum gml:id="engineering-unknown-origin">
      <gml:identifier codeSpace="OGC">engineering-unknown-origin</gml:identifier>
      <gml:name>Engineering Datum with an unknown origin</gml:name>
      <gml:scope>For use in unspecified engineering coordinate reference systems.</gml:scope>
    </gml:EngineeringDatum>
  </gml:engineeringDatum>
</gml:EngineeringCRS>
cportele commented 2 years ago

Meeting 2022-02-21: Looks good. @cportele will add a 2D one, too, and include text to support the CRSs in the draft. We will submit it for registration with the OGC NA once we also have the proposal for #34.