Les types géométriques représentent des objets en deux dimensions. Le type fondamental, le point, forme la base de tous les autres types.
Tableau 3-18. Types géométriques Postgres
Type géométrique | Stockage | Représentation | Description |
---|---|---|---|
point | 16 octets | (x,y) | Point dans l'espace |
line | 32 octets | ((x1,y1),(x2,y2)) | ligne infinie |
lseg | 32 octets | ((x1,y1),(x2,y2)) | segment de ligne finie |
box | 32 octets | ((x1,y1),(x2,y2)) | boîte rectangulaire |
path | 4+32n octets | ((x1,y1),...) | figure fermée (similaire au polygone) |
path | 4+32n octets | [(x1,y1),...] | figure ouverte |
polygon | 4+32n octets | ((x1,y1),...) | Polygone (similaire à la figure fermée) |
circle | 24 octets | <(x,y),r> | Cercle (centre et rayon) |
Un riche ensemble de fonctions et d'opérateurs est disponible pour gérer les différentes opérations géométriques comme, graduation, translation, rotation, et détermination des intersections.
Les points sont les briques fondamentales en deux dimensions pour les types géométriques.
Le point est défini en utilisant la syntaxe suivante :
( x , y ) x , y où : x : abcisse (nombre réel, virgule flottante) y : ordonnée (nombre réel, virgule flottante) |
Les segments de droites (lseg, pour Line SEGment) sont représentés par des paires de points.
lseg est défini comme suit :
( ( x1 , y1 ) , ( x2 , y2 ) ) ( x1 , y1 ) , ( x2 , y2 ) x1 , y1 , x2 , y2 où (x1,y1) et (x2,y2) sont les points terminaux du segment |
Les boîtes sont représentées par des paires de points dans les angles opposés de la boîte.
box est défini par la syntaxe :
( ( x1 , y1 ) , ( x2 , y2 ) ) ( x1 , y1 ) , ( x2 , y2 ) x1 , y1 , x2 , y2 où (x1,y1) and (x2,y2) sont les angles opposés |
Les chemins sont représentés par une série de points connectés. Ils peuvent être "ouverts" (le premier et le dernier point ne sont pas connectés) ou "fermés" (le premier et le dernier point sont connectés). Les fonctions popen(p) et pclose(p) sont disponibles pour forcer un chemin a être ouvert ou fermé, et les fonctions isopen(p) et isclosed(p) sont fournies pour selectionner chaque type dans une requête.
Le chemin est défini par :
( ( x1 , y1 ) , ... , ( xn , yn ) ) [ ( x1 , y1 ) , ... , ( xn , yn ) ] ( x1 , y1 ) , ... , ( xn , yn ) ( x1 , y1 , ... , xn , yn ) x1 , y1 , ... , xn , yn où (x1,y1),...,(xn,yn) points 1 à n un crochet ouvert ("[") placé au début signifie 'chemin ouvert' une parenthèse ouverte placée au début signifie 'chemin fermé' |
Les polygones sont représentés par un ensemble de points. Ils seront considérés comme équivalents aux chemins fermés, mais stockés différemment et ont leur propre jeu de routines de traitement.
polygon est défini par :
( ( x1 , y1 ) , ... , ( xn , yn ) ) ( x1 , y1 ) , ... , ( xn , yn ) ( x1 , y1 , ... , xn , yn ) x1 , y1 , ... , xn , yn où (x1,y1),...,(xn,yn) sont les points (de 1 à n) |
Les cercles sont représentés par un point central et un rayon.
Ils sont définis par la syntaxe :
< ( x , y ) , r > ( ( x , y ) , r ) ( x , y ) , r x , y , r où (x,y) est le centre du cercle r est le rayon du cercle |