Types géométriques

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étriqueStockageReprésentationDescription
point16 octets(x,y)Point dans l'espace
line32 octets((x1,y1),(x2,y2))ligne infinie
lseg32 octets((x1,y1),(x2,y2))segment de ligne finie
box32 octets((x1,y1),(x2,y2))boîte rectangulaire
path4+32n octets((x1,y1),...)figure fermée (similaire au polygone)
path4+32n octets[(x1,y1),...]figure ouverte
polygon4+32n octets((x1,y1),...)Polygone (similaire à la figure fermée)
circle24 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.

Point

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)

Segment de droite

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

Box

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 boîtes sont des sorties utilisant la première syntaxe. Les angles sont réordonnés en entrée pour stocker l'angle inférieur gauche en premier et l'angle supérieur droit en dernier. Les autres angles de la boîte peuvent aussi être précisés, mais l'inférieur gauche et le supérieur droit sont déterminés lors de la saisie et stockés dans la base.

Path

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 chemins sont des sorties utilisant la première syntaxe. Notez que les versions de Postgres antérieures à la 6.1 utilisaient un format de notation de chemin différent car il comprenait une simple parenthèse ouverte, suivie d'un booléen indiquant l'état du graphe (ouvert ou fermé), d'un entier exprimant le nombre de points, puis de la liste des points et enfin d'une parenthèse fermante. La fonction upgradepath est fournie pour convertir les chemins issus de versions (via pg_dump) pre-6.1.

Polygon

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 polygones sont exprimés en utilisant la première syntaxe. Note : Postgres, dans les versions antérieures à 6.1, utilisait un autre format pour les polygones : une parenthèse ouvrante, la liste des coordonnées x, la liste des coordonnées y, puis une parenthèse fermante. La fonction upgradepoly est fournie pour convertir les polygones des versions pre-6.1.

Circle

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
Les cercles sont des sorties utilisant la première syntaxe.