8.7. Types géométriques

Les types de données géométriques représentent des objets à deux dimensions. Le Tableau 8.16, « Types géométriques » liste les types disponibles dans PostgreSQL™. Le type le plus fondamental, le point, est à la base de tous les autres types.

Tableau 8.16. Types géométriques

Nom Taille de stockage Représentation Description
point 16 octets Point du plan (x,y)
line 32 octets Ligne infinie (pas entièrement implanté) ((x1,y1),(x2,y2))
lseg 32 octets Segment de droite fini ((x1,y1),(x2,y2))
box 32 octets Boîte rectangulaire ((x1,y1),(x2,y2))
path 16+16n octets Chemin fermé (similaire à un polygone) ((x1,y1),...)
path 16+16n octets Chemin ouvert [(x1,y1),...]
polygon 40+16n octets Polygone (similaire à un chemin fermé) ((x1,y1),...)
circle 24 octets Cercle <(x,y),r> (centre et rayon)

Un large ensemble de fonctions et d'opérateurs permettent d'effectuer différentes opérations géométriques, comme l'échelonnage, la translation, la rotation, la détermination des intersections. Elles sont expliquées dans la Section 9.10, « Fonctions et opérateurs géométriques ».

8.7.1. Points

Les points sont les briques fondamentales des types géométriques. Les valeurs de type point sont indiquées à l'aide de la syntaxe suivante :

( x , y )
  x , y

x et y sont les coordonnées respectives sous forme de nombre à virgule flottante.

8.7.2. Segments de droite

Les segments de droite (lseg) sont représentés sous la forme de paires de points à l'aide de la syntaxe suivante :

( ( x1 , y1 ) , ( x2 , y2 ) )
  ( x1 , y1 ) , ( x2 , y2 )  
    x1 , y1   ,   x2 , y2

(x1,y1) et (x2,y2) sont les points aux extrémités du segment.

8.7.3. Boîtes

Les boîtes (rectangles) sont représentées par les paires de points des coins opposés de la boîte selon la syntaxe suivante :

( ( x1 , y1 ) , ( x2 , y2 ) )
  ( x1 , y1 ) , ( x2 , y2 )  
    x1 , y1   ,   x2 , y2

(x1,y1) et (x2,y2) sont les coins opposés du rectangle.

Les rectangles sont affichés selon la première syntaxe. Les coins sont réordonnées lors de la saisie afin que le coin supérieur gauche apparaisse avant le coin inférieur droit. Les autres coins peuvent être saisis, mais les coins supérieur gauche et inférieur droit sont déterminés à partir de la saisie et stockés.

8.7.4. Chemins

Les chemins ( type path ) sont représentés par des listes de points connectés. Ils peuvent être ouverts, si le premier et le dernier point ne sont pas considérés connectés, ou fermés, si le premier et le dernier point sont considérés connectés.

Les valeurs de type path sont saisies selon la syntaxe suivante :

( ( x1 , y1 ) , ... , ( xn , yn ) )
[ ( x1 , y1 ) , ... , ( xn , yn ) ]
  ( x1 , y1 ) , ... , ( xn , yn )  
  ( x1 , y1   , ... ,   xn , yn )  
    x1 , y1   , ... ,   xn , yn    

où les points sont les extrémités des segments de droite qui forment le chemin. Les crochets ([]) indiquent un chemin ouvert alors que les parenthèses (()) indiquent un chemin fermé.

Les chemins sont affichés selon la première syntaxe.

8.7.5. Polygones

Les polygones ( type polygon) sont représentés par des listes de points (les vertex du polygone). Ils peuvent probablement être considérés comme des chemins fermés, mais ils sont stockés différemment et disposent de leurs propres routines de manipulation.

Les valeurs de type polygon sont saisies selon la syntaxe suivante :

( ( x1 , y1 ) , ... , ( xn , yn ) )
  ( x1 , y1 ) , ... , ( xn , yn )  
  ( x1 , y1   , ... ,   xn , yn )  
    x1 , y1   , ... ,   xn , yn    

où les points sont les extrémités des segments de droite qui forment les limites du polygone.

Les polygones sont affichés selon la première syntaxe.

8.7.6. Cercles

Les cercles (type circle) sont représentés par un point central et un rayon. Les valeurs de type circle sont saisies selon la syntaxe suivante :

< ( x , y ) , r >
( ( x , y ) , r )
  ( x , y ) , r  
    x , y   , r  

(x,y) est le centre et r le rayon du cercle.

Les cercles sont affichés selon la première syntaxe.