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
où
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
où (
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
où (
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
où (
x
,
y
) est le centre et
r
le rayon du cercle.
Les cercles sont affichés selon la première syntaxe.
|