Les types de données géométriques représentent des objets à deux dimensions. Le Tableau 8.19, « 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.19. 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> (point central 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.11, « Fonctions et opérateurs géométriques ».
Les points sont les briques fondamentales des types géométriques. Les valeurs de type point sont indiquées à l'aide des syntaxes suivantes :
( x , y ) x , y
où x et y sont les coordonnées respectives sous forme de nombre à virgule flottante.
Les points sont affichés en utilisant la première syntaxe.
Les segments de droite (lseg) sont représentés sous la forme de paires de points à l'aide d'une des syntaxes suivantes :
[ ( x1 , y1 ) , ( x2 , y2 ) ] ( ( x1 , y1 ) , ( x2 , y2 ) ) ( x1 , y1 ) , ( x2 , y2 ) x1 , y1 , x2 , y2
où (x1,y1) et (x2,y2) sont les points aux extrémités du segment.
Les segments de droites sont affichés en utilisant la première syntaxe.
Les boîtes (rectangles) sont représentées par les paires de points des coins opposés de la boîte selon l'une des syntaxes suivante :
( ( x1 , y1 ) , ( x2 , y2 ) ) ( x1 , y1 ) , ( x2 , y2 ) x1 , y1 , x2 , y2
où (x1,y1) et (x2,y2) sont les coins opposés du rectangle.
Les rectangles sont affichés en utilisant la deuxième syntaxe.
Tous les coins opposés peuvent être saisis, mais les valeurs seront réordonnées pour stocker les coins en haut à droite, et en bas à gauche, dans cet ordre.
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 avec une des syntaxes suivantes :
[ ( 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é. Quand les parenthèses externes sont omises, comme dans les syntaxes 3 à 5, il est supposé qu'il s'agit d'un chemin fermé.
Les chemins sont affichés selon la première ou la seconde syntaxe appropriée.
Les polygones ( type polygon) sont représentés par des listes de points (les vertex du polygone). Ils sont très similaires à 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 une des syntaxes suivantes :
( ( 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.
Les cercles (type circle) sont représentés par un point central et un rayon. Les valeurs de type circle sont saisies selon une des syntaxes suivantes :
< ( x , y ) , r > ( ( x , y ) , r ) ( x , y ) , r x , y , r
où (x,y) est le point central et r le rayon du cercle.
Les cercles sont affichés selon la première syntaxe.