4.1. Objets SIG


Les objets SIG supportés par PostGIS sont un sur-ensemble des "Fonctionnalités Simples" définies par l'OpenGIS Consortium (OGC). Depuis la version 0.9, PostGIS gère tous les objets et fonctions définis dans les spécifications "Simple Features Specifications for SQL" de l'OGC.

PostGIS étend les standards en ajoutant le support pour les coordonnées 3DZ, 3DM et 4D.

 Table des matières

4.1.1. Les formats WKB et WKT de l'OpenGIS
4.1.2. PostGIS EWKB, EWKT et formes canoniques
4.1.3. SQL-MM Partie 3

4.1.1. Les formats WKB et WKT de l'OpenGIS

Les spécifications de l'OpenGIS définissent deux méthodes standards pour décrire les objets spatiaux : la forme "textuelle bien connue" et la forme "binaire bien connue". Les deux formats contiennent des informations sur le type de l'objet ainsi que sur ses coordonnées.

Exemples de représentation en WKT d'objets spatiaux dont voici la description :

Les spécifications de l'OpenGIS imposent également que le format de stockage interne des objets géographiques inclue un identifiant du système de références spatiales ("spatial referencing system identifier", SRID). Le SRID est obligatoire lors de la création d'objets géographiques dans la base de données.

La gestion des entrées/sorties dans ces formats est rendue possible grâce aux fonctions suivantes :

bytea WKB = ST_asBinary(geometry);
text WKT = ST_asText(geometry);
geometry = ST_GeomFromWKB(bytea WKB, SRID);
geometry = ST_GeometryFromText(text WKT, SRID);

Par exemple, voici des commandes valides pour créer et insérer des objets géographiques OGC :

INSERT INTO SPATIALTABLE (
  THE_GEOM,
  THE_NAME
)
VALUES (
  ST_GeomFromText('POINT(-126.4 45.32)', 312),
  'A Place'
)

haut de la page | table des matières

4.1.2. PostGIS EWKB, EWKT et formes canoniques

Les formats proposés par l'OGC gèrent seulement la 2D et le SRID associé n'est jamais embarqué dans la représentation en entrée/sortie.

Les formats étendus de PostGIS sont actuellement un sur-ensemble de ceux de l'OGC (chaque WKB/WKT valide est un EWKB/EWKT valide) mais cela pourrait changer à l'avenir, particulièrement si l'OGC venait à sortir un nouveau format qui serait en conflit avec nos extensions. Donc vous NE DEVRIEZ PAS compter sur cette propriété.

Les format EWKB/EWKT de PostGIS ajoute les gestions de système de coordonnées 3dm, 3dz et 4d et contiennent l'information relative au SRID.

Des exemples de la représentation textuelle (EWKT) d'objets spatiaux étendus des propriétés sont les suivantes :

Les entrées/sorties dans ces formats sont disponibles via les interfaces suivantes :

Par exemple, une requête d'insertion valide pour créer et insérer un objet spatial PostGIS pourrait être :

INSERT INTO SPATIALTABLE (
  THE_GEOM,
  THE_NAME
)
VALUES (
  ST_GeomFromEWKT('SRID=312;POINTM(-126.4 45.32 15)'),
  'A Place'
)

Les "formes canoniques" d'un type PostgreSQL sont les représentations que vous obtenez avec de simples requêtes (sans appel de fonctions) et celle qui est sûr d'être accepté avec un simple insert, update ou copy. Pour le type geometry de PostGIS se sont les suivantes :

- Sortie -
binaire : EWKB
ascii : HEXEWKB (EWKB sous la forme hexadécimale)
- Entrée -
binaire : EWKB
ascii : HEXEWKB|EWKT

Par exemple cette requêtes lit du EWKT et renvoie du HEXEWKB dans le processus d'entrée/sortie canonique ascii :

=# SELECT 'SRID=4;POINT(0 0)'::geometry;
                     geometry
----------------------------------------------------
 01010000200400000000000000000000000000000000000000
 (1 row)

haut de la page | table des matières

4.1.3. SQL-MM Partie 3

Les spécifications des applications multimédia spatiales SQL étendent les propriétés simples des spécifications SQL en définissant un nombre de "courbes circulairement interpolées"
(original : "a number of circularly interpolated curves").
Les définitions de SQL-MM incluent les coordonées 3dm, 3dz et 4d, mais ne permettent pas d'embarquer l'information pour le SRID.
Les extensions "texte bien-connu" ne sont pas totalement supportées. Des exemples de quelque géométries courbées sont disponibles ci-dessous :

Les versions précédentes de la version 1.4 de PostGIS ne supportent pas les courbes composées dans les polygones courbes, mais les versions supérieures ou égales à la version 1.4 supporte l'utilisation de courbes composées dans les polygones courbes.
Note : tout les comparaisons à virgule flottante dans l'implémentation de SQL-MM sont effectuées avec une tolérance spécifiée, actuellement fixée à 1e-8.

haut de la page | table des matières