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 :

  • POINT(0 0 0) -- XYZ
  • SRID=32632;POINT(0 0) -- XY avec un SRID
  • POINTM(0 0 0) -- XYM
  • POINT(0 0 0 0) -- XYZM
  • SRID=4326;MULTIPOINTM(0 0 0,1 2 1) -- XYM avec un SRID
  • MULTILINESTRING((0 0 0,1 1 0,1 2 1),(2 3 1,3 2 1,5 4 1))
  • POLYGON((0 0 0,4 0 0,4 4 0,0 4 0,0 0 0),(1 1 0,2 1 0,2 2 0,1 2 0,1 1 0))
  • MULTIPOLYGON(((0 0 0,4 0 0,4 4 0,0 4 0,0 0 0),(1 1 0,2 1 0,2 2 0,1 2 0,1 1 0)),((-1 -1 0,-1 -2 0,-2 -2 0,-2 -1 0,-1 -1 0)))
  • GEOMETRYCOLLECTIONM(POINTM(2 3 9),LINESTRINGM((2 3 4,3 4 5)))

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

  • bytea EWKB = ST_asEWKB(geometry);
  • text EWKT = ST_asEWKT(geometry);
  • geometry = ST_GeomFromEWKB(bytea EWKB);
  • geometry = ST_GeomFromEWKT(text EWKT);

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)

Posted in version imprimable | Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | 4539 lectures

Posté par rédacteurs le 6 Avril, 2006 - 20:00.

Accéder aux archives

« Novembre 2024  
Lun Mar Mer Jeu Ven Sam Dim
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

Ouverture de session

Qui est en ligne

Il y a actuellement 1 utilisateur et 82 invités en ligne.
Locations of visitors to this page
Drupal Top Sites - Ultimate Drupal Exposure