MTES-MCT / metadata-postgresql

Plume : gestion des métadonnées du patrimoine PostgreSQL
https://mtes-mct.github.io/metadata-postgresql/
GNU Affero General Public License v3.0
1 stars 1 forks source link

Visualisation des géométries et référentiel `OGC:CRS84` #33

Closed alhyss closed 2 years ago

alhyss commented 2 years ago

Pour autant que je puisse voir, la re-projection ne fonctionne pas avec le référentiel OGC:CRS84, qu'il s'agisse du référentiel source (pour les géométries dont les coordonnées sont en OGC:CRS84) ou du référentiel cible (référentiel courant du canevas) de la transformation.

Je crois qu'il y a deux causes.

La première est qu'il y avait une coquille dans la fonction plume.rdf.utils.split_rdf_wkt qui faisait qu'elle renvoyait 'OGC:RS84' et pas 'OGC:CRS84'... J'ai corrigé l'horreur que j'avais écrite, qui aurait d'ailleurs aussi posé problème avec les référentiels IGN.

L'autre facteur est qu'il semble que le constructeur de qgis.core.QgsCoordinateReferenceSystem ne reconnaisse pas tous les référentiels. 'OGC:CRS84' fait partie de ceux qui ne passent pas, du moins sous QGIS 3.16, et c'est ennuyeux considérant qu'il s'agit du référentiel appliqué par défaut lorsqu'il n'y avait pas de référentiel explicitement déclaré dans le WKT.

>>> QgsCoordinateReferenceSystem('EPSG:2154')
<QgsCoordinateReferenceSystem: EPSG:2154>
>>> QgsCoordinateReferenceSystem('OGC:CRS84')
<QgsCoordinateReferenceSystem: >

La méthode QgsCoordinateReferenceSystem.createFromUserInput fonctionne, par contre.

>>> crs = QgsCoordinateReferenceSystem()
>>> crs.createFromUserInput('OGC:CRS84')
True
>>> crs
<QgsCoordinateReferenceSystem: OGC:CRS84>

Je me dis que, même si c'est moins performant, il est sans doute préférable d'utiliser systématiquement QgsCoordinateReferenceSystem.createFromUserInput pour créer les objets QgsCoordinateReferenceSystem ?

Je flèche ça sur une version 0.4 bêta, car il y a très peu de chances que ça affecte les testeurs.

WREATCHED commented 2 years ago

Ok implémenté