Benjamin Chartier dans son blog, a recemment posté un article concernant les bases de données spatiales et leur conformité aux standards existants.
Il s’appuyait notamment en celà sur l’étude de Nicolas Ribot réalisé pour le compte du CNES en 2007 (à noter que Nicolas a actualisé son étude dernièrement et en a présenté les principaux éléments lors des dernières rencontres SIG La Lettre).
Quelques éléments complémentaires sur ce sujet, car la question du respect des standards pour les bases de données spatiales, est pour l’instant un tantinet plus complexe qu’une ’simple’ implémentation de spécification.
Quelques éléments de contexte
Première difficulté en effet, on retrouve deux organismes de standardisation, à savoir l’ISO et l’OGC, avec plusieurs spécifications distinctes:
- OGC Simple Feature for SQL (OGC SFS)
- Son homologue ISO 19125 (qui est la déclinaison ISO de SFS)
- ISO 13249-3 (plus connu sous le nom de ISO SQL/MM spatial)
Il faut bien comprendre au niveau ISO que 13249-3 (SQL/MM donc) ne dépend pas du TC 211, comme les autres spécifications géographiques, mais d’un groupe de travail lié davantage au SQL (le JTC1 SC32 WG4).
Dis autrement, il y a donc une forte proximité entre OGC SFS et ISO 19125, mais une distance importante entre ISO SQL/MM.
Et pour rajouter encore un peu d’entropie à l’ensemble il faut évidemment compter avec les différentes versions:
- OGC SFS 1.1, la plus couramment implémentée, (mais qui date de 1999)
- OGC SFS 1.2, la version ‘officielle’ du moment (publiée fin 2006)
- La dernière version de SQL/MM-3 datant aussi de 2006.
le SWG ISO 19125
Au niveau OGC un nouveau groupe de travail vient de voir le jour sous l’impulsion de John Herring (Oracle), pour harmoniser le paysage des spécifications entre OGC SFS, ISO 19125 et ISO SQL/MM et les enrichir le cas échéant (fonctions 3D, référencement linéaire…) .
Ce groupe de travail répondant au doux nom de SWG ISO 19125, est ouvert à tous les membres OGC.
Oslandia via Olivier Courtin fait partie de ce groupe, et représente en ce sens PostGIS à l’OGC.
Si vous êtes membre OGC (ou envisagez de le devenir) et que ces problématiques vous concerne, ne pas hésiter à venir participer à cette initiative.
Et PostGIS dans tout celà ?
Si l’on fait un comparatif rapide des différentes spécifications et de l’implémentation dans PostGIS l’on se rend compte des points suivants:
| Intitulé |
ISO SQL/MM-3 |
OGC SFS |
PostGIS |
| Support des Curvilignes |
Oui |
Non |
Partiel: les primitives géographiques sont supportées, mais de nombreuses fonctions ne les supportents pas ou les ‘réduisent’ à des géometries simples sans la composante curviligne. |
| Support des PolyhedralSurface (volumes 3D) |
Brievement évoqué |
Oui à partir de la 1.2 |
En cours, prévu pour la 2.0, communication au FOSS4G 2010 prévue |
| Support des dimensions Z et M |
Oui |
Depuis la 1.2, mais avec une expression différente au niveau du WKT de celle de ISO SQL/MM |
Oui depuis PostGIS 1.0 mais dans une syntaxe propriétaire (EWKT/EWKB), à partir de PostGIS 2.0 pour une conformité ISO SQL/MM du WKT (déja commité dans le trunk) |
| Surcouche Topologique |
Oui permet de placer par dessus des données ‘Spaghetti’, un modèle relationnel topologique (adjacence, arcs, edges…) |
Non |
Des vélléités d’une première implémentation en 2006, mais pas finalisée depuis faute de financements |
| Routing (très) basique |
Oui un dijkstra est présent |
Non |
Non |
| Fonction référencement linéaire |
Oui |
Non, mais prévu pour la future version de ISO 19125, (cf rubrique suivante) |
Des fonctions existent mais sans conforme au standard ISO SQL/MM, ce point est identifié comme étant un besoin de financement |
| Fonctions topologie incluant la 3D (9-DIM) |
Non |
Non, mais prévu pour la future version de ISO 19125, (cf rubrique suivante) |
Non, mais en recherche de financement pour mettre en oeuvre les fonctionnalités ISO 19125 en avance de phase |
| Mécanisme d’annotations textuelles sur des géométries |
Non |
Depuis la version 1.2 |
Non |
| Tables additionnelles pour gérer les données |
|
geometry_columns et spatial_ref_sys |
Conforme à OGC SFS (mais pas à SQL/MM). Rajoute depuis la 1.5 une vue geography_columns pour les données géocentriques. |
| Systéme de projection inconnu |
Se code avec un SRID = 0 |
Non couvert par la specification |
Utilise SRID = -1. Doit passer à SRID = 0 dans le cadre de PostGIS 2.0 |
PostGIS supporte OGC SFS 1.1 depuis sa version PostGIS 1.0 et a obtenu le statut compliant pour sa branche 1.1.
Depuis la version de PostGIS 1.3, les efforts se portent désormais clairement vers le support de ISO SQL/MM.
C’est cette préoccupation qui a conduit à prefixer les noms des fonctions du préfixes ST_ (pour Spatial Type).
Le support complet de ISO SQL/MM doit être vu comme un objectif à long terme, au vu de la richesse fonctionnelle de SQL/MM, (pour donner un ordre d’idée OGC SFS tient en 100 pages, il en faut 600 pour SQL/MM !)