Guida di riferimento per l'utente

Creazione di un'interrogazione spaziale

Questa sezione fornisce informazioni sulla creazione delle interrogazioni spaziali che utilizzano le funzioni spaziali e i predicati.

Funzioni spaziali e SQL

DB2 Spatial Extender include le funzioni che eseguono diverse operazioni sui dati spaziali. Gli esempi riportati in questa sezione indicano come utilizzare le funzioni spaziali per creare le proprie interrogazioni spaziali.

La Tabella 3 fornisce un elenco di funzioni spaziali e dei tipi di operazione che possono essere eseguiti.

Tabella 3. Operazioni e funzioni spaziali
Tipo di funzione Esempio di operazione
Calcolo Calcolare la distanza tra i punti
Confronto Ricercare tutti i clienti ubicati in un'area a rischio
Scambio di dati Convertire i dati nei formati supportati
Trasformazione Aggiungere un raggio di cinque miglia ad un punto

Per ulteriori informazioni sulle funzioni spaziali, consultare le sezioni Geometrie e funzioni spaziali associate e Funzioni spaziali per le interrogazioni SQL.

Esempio 1: Confronto

La seguente interrogazione ricerca la distanza media di un cliente da un centro commerciale. Le funzioni spaziali utilizzate in questo esempio sono ST_Distance e ST_Within.

SELECT s.id, AVG(db2gse.ST_Distance(c.location,s.location))
FROM customers c, stores s
WHERE db2gse.ST_Within(c.location,s.zone)=1
GROUP BY s.id

Esempio 2: Scambio di dati

La seguente interrogazione ricerca i clienti che vivono nell'area della Baia di San Francisco. Le funzioni spaziali utilizzate in questo esempio sono ST_AsText (data exchange) e ST_Within. ST_AsText converte i dati spaziali della colonna c.location nel formato OGC TEXT.

SELECT db2gse.ST_AsText(c.location,cordref(1))
FROM customers c
WHERE db2gse.ST_Within(c.location,:BayArea)=1
 

Esempio 3: Calcolo

La seguente interrogazione ricerca tutte le strade con lunghezza superiore a 10.5 miglia. La funzione spaziale utilizzata in questo esempio è ST_Length.

SELECT s.name,s.id
FROM street s
WHERE db2gse.ST_Length(s.path) > 10.5
 

Esempio 4: Trasformazione

Questa interrogazione ricerca i clienti che vivono all'interno dell'area a rischio o entro 2 miglia dai confini di questa area. Le funzioni spaziali utilizzate in questo esempio sono ST_Buffer (transformation) e ST_Within.

SELECT c.name,c.phoneNo,c.address
FROM customers c
WHERE db2gse.ST_Within(c.location,ST_Buffer(:floodzone,2))=1
 


[ Inizio pagina | Pagina precedente | Pagina successiva | Indice | Indice analitico ]