Le srsName de la spécification «EPSG: 4326» est-il conforme à GML 3.1 / 3.2?

11

Je vois parfois srsName="EPSG:4326"dans des documents GML (par exemple https://postgis.net/docs/ST_GeomFromGML.html , bien que ma source particulière ne soit pas publique). L'intention (sauf peut-être pour l'ordre des axes qui n'est pas important ici) est claire et probablement interopérable sur divers systèmes, mais je me demande si cela est réellement conforme aux spécifications.

J'ai examiné l' Autorité de nommage OGC et la politique OGC URN , et ils utilisent le urn:ogc:def:crs:EPSG:\d{4,5}formulaire (c'est-à-dire qu'il le serait urn:ogc:def:crs:EPSG:4326).

Le profil de point GML (OGC 05-029r4) utilise srsName="urn:ogc:def:crs:EPSG:6.6:4326"dans les exemples et exige que cela soit "bien connu". Je ne vois rien là-dedans qui exclut en fait tout particulier srsNamecependant.

La spécification de srsName="EPSG:abcd"formulaire (en particulier srsName="EPSG:4326") est-elle conforme pour un élément GML 3.1 ou 3.2 (en particulier, pour le profil de point)?

BradHards
la source
1
Rejeté l'ajout de la balise postgis - la question ne concerne pas postgis (ou toute autre implémentation), mais plutôt la spécification.
BradHards

Réponses:

10

Oui, srsName="EPSG:abcd"est compatible GML-3 mais uniquement dans un contexte d'application où EPSG:abcdpointe vers une définition CRS. Depuis 2013, la meilleure pratique de l'OGC ( documentée ici ) consiste à utiliser des URI http de la forme http://www.opengis.net/def/crs/EPSG/0/4326 .

La section v.2 de la spécification GML-3.0.0 ( OCG 02-023r4 ), page xiv indique que le CRS d'aliasing est casher:

dans GML, nous avons trouvé pratique qu'un objet identifié puisse porter plusieurs «noms» - c'est-à-dire des étiquettes attribuées par des autorités externes ou couramment utilisées pour un objet. Ceux-ci peuvent être distingués les uns des autres en notant le "codeSpace" pour un nom, qui permet à un consommateur des informations de sélectionner le nom approprié pour eux à utiliser.

La spécification GML-3.2.1 ( OGC 03-105r1 ) section 10.1.3.2, page 56 dit:

En général, l'attribut srsName [de type = "anyURI"] pointe vers une instance CRS de gml: AbstractCoordinateReferenceSystem (voir 12.2.3). Pour les références bien connues, il n'est pas nécessaire que la description CRS existe à l'emplacement vers lequel pointe l'URI.

Bien qu'il n'y ait pas de définition explicite de "bien connu" dans la spécification GML-3, l'utilisation de la définition OGC 05-029r4 (section 4, page 8) de "bien connu" comme "ne nécessitant pas de résolution", tant qu'un l'application peut identifier en interne un CRS à partir d'un URI, vous pourriez dire que le CRS est "bien connu". Ainsi, l'utilisation du système quelque peu compliqué de GML-3.1 & 3.2 de pointage sur les CRS par leur nom peut être interprétée comme les CRS étant bien connus et EPSG:abcdest donc parfaitement valable. Si vous souhaitez explorer les méthodes exactes avec lesquelles GML pointe vers un CRS via un srsName, consultez referenceSystems.xsd dans http://schemas.opengis.net/gml/3.1.0/base/ et http: //schemas.opengis .net / gml / 3.2.1 / .

Il convient de noter qu'après la publication du livre blanc "OGC Identifiers-the Case for HTTP URIs" ( OGC 10-124r1 ), publié en 2010, les documents de spécification OGC sont plus ou moins passés à cette norme.

Steven Kalt
la source
Pouvez-vous dire pourquoi vous pensez que "EPSG: ####" est une URN? À partir de tools.ietf.org/html/rfc8141#section-2, il faudrait au moins commencer par urn:le schéma d'URI enregistré. De plus, je ne comprends pas ce que vous pensez que c'est avec le géoserveur (que je connais assez bien).
BradHards
Oui, mon erreur, EPSG: #### n'est pas une URN. J'ai donné les documents WFS du géoserveur car les deux donnent quelques exemples de formats srsName valides, mais vous avez raison, c'est hors sujet. J'ai édité les deux morceaux.
Steven Kalt
OK, alors pourquoi est-ce un URI valide? Je ne vois pas que "EPSG" est un schéma enregistré (pas en minuscule canonique). En outre, bien que le schéma le dise anyURI, cela n'est peut-être pas suffisant pour être conforme aux spécifications (c'est-à-dire que la spécification a d'autres exigences, qui ne sont valables par rapport au schéma).
BradHards
3
Existe-t-il une définition de anyURI qui exclut les régimes individuels? EPSG syntaxique: le code pourrait être un URI. Il n'y a pas de règle pour les lettres majuscules ou minuscules dans rfc3986. Le type anyURI pour srsName n'est pas spécifique aux Geotools. Il est défini dans OGC 07-036 "Norme de codage OpenGIS® Geography Markup Language (GML)", chapitre 10.1.3.2 SRSReferenceGroup.
Andreas W. Bartels
Ce n'est peut-être pas un URI valide, mais il est conforme aux spécifications s'il est reconnaissable. Voir OGC 07-036 GML V3.2.1 section 10.1.3.2: " En général, l'attribut srsName pointe vers une instance CRS de gml: AbstractCoordinateReferenceSystem (voir 12.2.3). Pour les références connues, il n'est pas nécessaire que la description CRS existe à l'endroit indiqué par l'URI. "
Steven Kalt