Documentazione di PostgreSQL 9.0 > Il linguaggio SQL > Tipi di Dato > Tipi geometrici
PrecedenteTipi enumeratiTipi indirizzi di reteSuccessivo

8.8. Tipi geometrici

I tipi dati geometrici rappresentano oggetti spaziali a due dimensioni. La Tabella 8.20, «Tipi geometrici» mostra i tipi geometrici disponibili in PostgreSQL™. Il tipo fondamentale, il punto, forma la base per tutti gli altri tipi.

Tabella 8.20. Tipi geometrici

NomeDimensioneRappresentazioneDescrizione
point16 bytePunto nel piano(x,y)
line32 byteLinea infinita (non implementata completamente)((x1,y1),(x2,y2))
lseg32 byteSegmento di linea finito((x1,y1),(x2,y2))
box32 byteBox rettangolare((x1,y1),(x2,y2))
path16+16n byteTracciato chiuso (simile a poligono)((x1,y1),...)
path16+16n bytePercorso aperto[(x1,y1),...]
polygon40+16n bytePoligono (simile a tracciato chiuso)((x1,y1),...)
circle24 byteCerchio<(x,y),r> (centro e raggio)

Un ricco insieme di funzioni e operatori è disponibile per effettuare diverse operazioni geometriche come scalare, traslare, ruotare e determinare intersezioni. Queste sono spiegate in Sezione 9.11, «Funzioni e operatori geometrici».

8.8.1. Punti

I punti sono il blocco fondamentale per la costruzione dei tipi geometrici a due dimensioni. I valori del tipo point vengono specificati usando le seguenti sintassi:

( x , y )
  x , y

dove x e y sono le rispettive coordinate espresse con numeri in virgola mobile.

I punti sono espressi in output usando la prima sintassi

8.8.2. Segmenti di linea

I segmenti di linea (lseg) sono rappresentati da coppie di punti. I valori di tipo lseg vengono specificati usando le seguenti sintassi:

[ ( x1 , y1 ) , ( x2 , y2 ) ]
( ( x1 , y1 ) , ( x2 , y2 ) )
  ( x1 , y1 ) , ( x2 , y2 )
    x1 , y1   ,   x2 , y2

dove (x1,y1) e (x2,y2) sono i punti finali del segmento di linea.

I segmenti di linea sono espressi in output usando la prima sintassi.

8.8.3. Box

I box sono espressi da coppie di punti che sono gli angoli opposti del box. I valori del tipo box sono specificati usando una delle seguenti sintassi:

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

dove (x1,y1) e (x2,y2) sono qualsiasi coppia di angoli opposti del box.

I box sono espressi in output usando la seconda sintassi.

Qualsiasi coppia di angoli opposti può essere specificata in input, ma i valori sono riordinati se necessario per immagazzinare l'angolo superiore destro e inferiore sinistro, nell'ordine.

8.8.4. Tracciati

I tracciati sono rappresentati da una elenco di punti connessi. I tracciati possono essere aperti, dove il primo e l'ultimo punto della lista non vengono considerati connessi, o chiusi, dove il primo e l'ultimo punto vengono considerati connessi.

I valori di tipo path vengono specificati usando le seguenti sintassi:

[ ( x1 , y1 ) , ... , ( xn , yn ) ]
( ( x1 , y1 ) , ... , ( xn , yn ) )
  ( x1 , y1 ) , ... , ( xn , yn )
  ( x1 , y1   , ... ,   xn , yn )
    x1 , y1   , ... ,   xn , yn

dove i punti sono i punti finali dei segmenti di linee compresi nel tracciato. Le parentesi quadre ([]) indicano un percorso aperto, mentre le parentesi (()) indicano un percorso chiuso.

I tracciati sono espressi in output usando in modo appropriato la prima o la seconda sintassi.

8.8.5. Poligoni

I poligoni sono rappresentati da un elenco di punti (i vertici del poligono). I poligoni dovrebbero verosimilmente essere considerati equivalenti ai percorsi chiusi, ma vengono memorizzati differentemente e hanno un loro insieme di routine di supporto.

I valori di tipo polygon vengono specificati usando le seguenti sintassi:

( ( x1 , y1 ) , ... , ( xn , yn ) )
  ( x1 , y1 ) , ... , ( xn , yn )
  ( x1 , y1   , ... ,   xn , yn )
    x1 , y1   , ... ,   xn , yn

dove i punti sono i punti finali dei segmenti di linee comprese nei confini del poligono.

I poligoni vengono prodotti usando la prima sintassi.

8.8.6. Cerchi

I cerchi vengono rappresentati da un punto centrale e un raggio. I valori di tipo circle vengono specificati usando le seguenti sintassi:

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

dove (x,y) è il centro e r è il raggio del cerchio.

I cerchi sono espressi in output usando la prima sintassi.

Documentazione di PostgreSQL 9.0 > Il linguaggio SQL > Tipi di Dato > Tipi geometrici
PrecedenteTipi enumeratiTipi indirizzi di reteSuccessivo