Czy specyfikacja srsName „EPSG: 4326” jest zgodna z GML 3.1 / 3.2?

11

Czasami widzę srsName="EPSG:4326"w dokumentach GML (np. Https://postgis.net/docs/ST_GeomFromGML.html , chociaż moje szczególne źródło nie jest publiczne). Cel (z wyjątkiem być może kolejności osi, która nie jest tutaj ważna) jest jasny i prawdopodobnie współdziała w różnych systemach, ale zastanawiam się, czy to rzeczywiście jest zgodne ze specyfikacją.

Przyjrzałem się zasadom OGC Naming Authority i OGC URN i używają one urn:ogc:def:crs:EPSG:\d{4,5}formularza (tzn. Byłoby urn:ogc:def:crs:EPSG:4326).

Profil punktowy GML (OGC 05-029r4) wykorzystuje srsName="urn:ogc:def:crs:EPSG:6.6:4326"w przykładach i wymaga, aby był „dobrze znany”. Nie widzę tam niczego, co faktycznie wykluczałoby jakieś szczególne srsName.

Czy specyfikacja srsName="EPSG:abcd"formularza (w szczególności srsName="EPSG:4326") jest zgodna z elementem GML 3.1 lub 3.2 (w szczególności z profilem punktowym)?

BradHards
źródło
1
Odrzucono dodanie tagu postgis - pytanie nie dotyczy postgis (lub jakiejkolwiek innej implementacji), ale raczej specyfikacji.
BradHards

Odpowiedzi:

10

Tak, srsName="EPSG:abcd"jest zgodny z GML-3, ale tylko w kontekście aplikacji, która EPSG:abcdwskazuje na definicję CRS. Od 2013 r. Najlepszą praktyką OGC ( udokumentowaną tutaj ) jest używanie http URI w postaci http://www.opengis.net/def/crs/EPSG/0/4326 .

Część specyfikacji GML-3.0.0 ( OCG 02-023r4 ) v.2, strona xiv stwierdza, że ​​aliasing CRS jest koszerny:

w GML uznaliśmy za wygodne, aby zidentyfikowany obiekt mógł przenosić kilka „nazw” - tj. etykiet przypisanych przez władze zewnętrzne lub powszechnie używanych dla obiektu. Można je odróżnić od siebie, zwracając uwagę na „codeSpace” dla nazwy, która pozwala konsumentowi informacji wybrać odpowiednią nazwę do użycia.

Specyfikacja GML-3.2.1 ( OGC 03-105r1 ) sekcja 10.1.3.2, strona 56 mówi:

Zasadniczo atrybut srsName [typu = "anyURI"] wskazuje na instancję CRS gml: AbstractCoordinateReferenceSystem (patrz 12.2.3). W przypadku dobrze znanych odniesień nie jest wymagane, aby opis CRS istniał w miejscu, do którego wskazuje URI.

Chociaż w specyfikacji GML-3 nie ma wyraźnej definicji „dobrze znanego”, to przy użyciu definicji OGC 05-029r4 (sekcja 4, strona 8) „dobrze znana” jako „niewymagająca rozwiązania”, o ile aplikacja może wewnętrznie identyfikować CRS na podstawie URI, można powiedzieć, że CRS jest „dobrze znany”. Tak więc użycie nieco skomplikowanego systemu wskazywania CRSs przez GML-3.1 i 3.2 można zinterpretować jako dobrze znane CRS, a zatem EPSG:abcdjest ono całkowicie poprawne. Jeśli chcesz zbadać dokładne metody, za pomocą których GML wskazuje CRS za pomocą srsName, zobacz referenceSystems.xsd w http://schemas.opengis.net/gml/3.1.0/base/ i http: //schemas.opengis .net / gml / 3.2.1 / .

Warto zauważyć, że po opublikowaniu białej księgi „Identyfikatory OGC - przypadek URI HTTP” ( OGC 10-124r1 ) w 2010 r., Dokumenty specyfikacji OGC mniej więcej zostały przeniesione do tego standardu.

Steven Kalt
źródło
Czy możesz powiedzieć, dlaczego uważasz, że „EPSG: ####” to URN? Z tools.ietf.org/html/rfc8141#section-2 przynajmniej musiałby zacząć urn:jako zarejestrowany schemat URI. Poza tym nie rozumiem, co według ciebie ma to wspólnego z geoserver (z którym jestem dość zaznajomiony).
BradHards
Tak, mój błąd, EPSG: #### nie jest URN. Podałem dokumentację WFS geoservera, ponieważ obie zawierają przykłady prawidłowych formatów srsName, ale masz rację, to nie na temat. Zredagowałem oba utwory.
Steven Kalt
OK, to dlaczego jest to prawidłowy identyfikator URI? Nie widzę, aby „EPSG” był zarejestrowanym programem (nie w kanonicznej formie małych liter). Ponadto, podczas gdy schemat mówi anyURI, że być może nie jest to wystarczające, aby być zgodne ze specyfikacją (tj. Specyfikacja ma inne wymagania, które obowiązują tylko w przypadku schematu).
BradHards
3
Czy istnieje definicja dowolnegoURI, która wyklucza poszczególne systemy? Składniowy epsg: kod może być identyfikatorem URI. W rfc3986 nie ma reguły dla wielkich i małych liter. Typ anyURI dla srsName nie jest specyficzny dla Geotools. Został zdefiniowany w OGC 07-036 „Standard kodowania OpenGIS® Geography Markup Language (GML)” Rozdział 10.1.3.2 SRSReferenceGroup.
Andreas W. Bartels,
Może nie być prawidłowym identyfikatorem URI, ale jest zgodny ze specyfikacją, jeśli jest rozpoznawalny. Zobacz OGC 07-036 GML V3.2.1 sekcja 10.1.3.2: „ Ogólnie atrybut srsName wskazuje na instancję CRS gml: AbstractCoordinateReferenceSystem (patrz 12.2.3). W przypadku dobrze znanych referencji nie jest wymagane istnienie opisu CRS w miejscu, na które wskazuje URI.
Steven Kalt