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

Ajout de catégories communes et de méthodes de calcul #66

Open alhyss opened 2 years ago

alhyss commented 2 years ago

Mise en œuvre de décisions prises lors de la réunion n°4 du sous-groupe Métadonnées - cf. issue #21.

Méthodes de calcul à définir sur des catégories existantes :

Ces propriétés sont calculées à partir de l'ensemble des champs de géométries de la table, au contraire de ce que proposent les fonctionnalités du bouton d'aide à la saisie des géométries, qui considèrent une couche, soit une table et un champ de géométrie particulier.

Gros point d'attention sur le calcul automatique pour des catégories de second niveau. Le mécanisme actuel le gère sans problème, mais le résultat risque de paraître très douteux. Il ne serait vraisemblablement pas opportun de mettre à jour tous les groupes de propriétés dct:spatial quand il y en a plusieurs... On pourrait considérer que le calcul ne porte que sur le premier groupe, ou n'autoriser que le calcul manuel dans ce cas (mais n'en serait que plus redondant avec les fonctionnalités d'aide à la saisie).

Nouvelles catégories communes (noms à confirmer) + définition de leurs méthodes de calcul :

alhyss commented 2 years ago

Pour le vocabulaire à utiliser pour les types de géométries, la collection Geometries ISO 19107:2003 serait une option [^2].

[^2]: Voir aussi le vocabulaire Basic Datatypes from ISO 1900 series. Il est plus large, et définit des URI alternatives en minuscules pour la collection précitée.

Mais PostGIS connaît davantage de types, comme prévu par [le standard](https://www.ogc.org/standards/sfs (page 30 et suivantes)...

Anciennes formes (ne porte pas l'information sur la dimension, qui est de toute façon stockée par ailleurs[^1]) :

['GEOMETRY', 'GEOMETRYM', 'GEOMETRYCOLLECTION', 'GEOMETRYCOLLECTIONM', 'POINT', 'POINTM',
'MULTIPOINT', 'MULTIPOINTM', 'POLYGON', 'POLYGONM', 'MULTIPOLYGON', 'MULTIPOLYGONM', 'MULTILINESTRING', 
'MULTILINESTRINGM', 'LINESTRING', 'LINESTRINGM', 'CIRCULARSTRING', 'CIRCULARSTRINGM', 'COMPOUNDCURVE', 
'COMPOUNDCURVEM', 'CURVEPOLYGON', 'CURVEPOLYGONM', 'MULTICURVE', 'MULTICURVEM', 'MULTISURFACE', 
'MULTISURFACEM', 'POLYHEDRALSURFACE', 'POLYHEDRALSURFACEM', 'TRIANGLE', 'TRIANGLEM', 'TIN', 'TINM']

[^1]: Du 'POINT' de dimension 3 est du 'PointZ' en nouvelle écriture, du 'POINT' de dimension 4 est du 'PointZM'. Idem pour les autres types.

Nouvelles formes (porte l'information sur la dimension) :

['Geometry', 'GeometryZ', 'GeometryM', 'GeometryZM', 'GeometryCollection', 'GeometryCollectionZ',
'GeometryCollectionM', 'GeometryCollectionZM', 'Point', 'PointZ', 'PointM', 'PointZM', 'MultiPoint', 
'MultiPointZ', 'MultiPointM', 'MultiPointZM', 'Polygon', 'PolygonZ', 'PolygonM', 'PolygonZM', 
'MultiPolygon', 'MultiPolygonZ', 'MultiPolygonM', 'MultiPolygonZM', 'MultiLineString', 'MultiLineStringZ', 
'MultiLineStringM', 'MultiLineStringZM', 'LineString', 'LineStringZ', 'LineStringM', 'LineStringZM', 
'CircularString', 'CircularStringZ', 'CircularStringM', 'CircularStringZM', 'CompoundCurve', 'CompoundCurveZ', 
'CompoundCurveM', 'CompoundCurveZM', 'CurvePolygon', 'CurvePolygonZ', 'CurvePolygonM', 
'CurvePolygonZM', 'MultiCurve', 'MultiCurveZ', 'MultiCurveM', 'MultiCurveZM', 'MultiSurface', 'MultiSurfaceZ', 
'MultiSurfaceM', 'MultiSurfaceZM', 'PolyhedralSurface', 'PolyhedralSurfaceZ', 'PolyhedralSurfaceM', 
'PolyhedralSurfaceZM', 'Triangle', 'TriangleZ', 'TriangleM', 'TriangleZM', 'Tin', 'TinZ', 'TinM', 'TinZM']