8.7. Types géométriques

Les types de données géométriques représentent des objets à deux dimensions. Tableau 8-16 liste les types disponibles dans PostgreSQL. Le type le plus fondamental, le point, forme la base pour tous les autres types.

Tableau 8-16. Types géométriques

NomTaille de stockageReprésentationDescription
point16 octetsPoint du plan(x,y)
line32 octetsLigne infinie (pas entièrement implémenté)((x1,y1),(x2,y2))
lseg32 octetsSegment de droite fini((x1,y1),(x2,y2))
box32 octetsBoite rectangulaire((x1,y1),(x2,y2))
path16+16n octetsChemin fermé (similaire à un polygone)((x1,y1),...)
path16+16n octetsChemin ouvert[(x1,y1),...]
polygon40+16n octetsPolygone (similaire à un chemin fermé)((x1,y1),...)
circle24 octetsCercle<(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'agrandissement, la translation, la rotation, la détermination des intersections. Elles sont expliquées dans Section 9.10.

8.7.1. Points

Les points sont les blocs fondamentaux pour construire les types géométriques. Les valeurs de type point sont spécifiées en utilisant 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 droites

Les segments de droites (lseg) sont représentés sous forme paires de points, en utilisant la syntaxe suivante:

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

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

8.7.3. Boxes

Les boites (rectangles) sont représentées par paires de points qui sont les coins opposés de la boite, en utilisant 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 en utilisant la première syntaxe. Les coins sont réordonnées lors de la saisie. Le coin en haut à gauche, puis le coin en bas à droite. Les autres coins peuvent être saisis, mais les coins en bas à gauche et en haut à droite sont déterminés à partir de l'entrée et stockés.

8.7.4. Chemins

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

Les valeurs de type path sont entrées avec 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 droites qui forment le chemin. Les crochets ([]) indiquent un chemin ouvert, alors que les parenthèses (()) indiquent un chemin fermé.

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

8.7.5. Polygones

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

Les valeurs de type polygon sont saisies avec 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 droites qui forment les limites du polygone.

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

8.7.6. Cercles

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

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

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

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