Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Le funzioni geospaziali in Analisi di flusso di Azure consentono l'analisi in tempo reale sui dati geospaziali in streaming. Con poche righe di codice, è possibile sviluppare una soluzione di livello di produzione per scenari complessi. Queste funzioni supportano tutti i tipi WKT e GeoJSON Point, Polygon e LineString.
Esempi di scenari che possono trarre vantaggio dalle funzioni geospaziali includono:
- Servizio di trasporto condiviso
- Gestione della flotta
- Tracciamento degli asset
- Isolamento geografico
- Rilevamento telefonico tra siti di cella
Il linguaggio di query di Analisi di flusso include sette funzioni geospaziali predefinite: CreateLineString, CreatePoint, CreatePolygon, ST_DISTANCE, ST_OVERLAPS, ST_INTERSECTS e ST_WITHIN.
CreateLineString
La CreateLineString funzione accetta punti e restituisce un elemento LineString GeoJSON, che può essere tracciato come linea su una mappa. Per creare un oggetto LineString, è necessario disporre di almeno due punti. I punti LineString verranno connessi in ordine.
La query seguente usa CreateLineString per creare un oggetto LineString usando tre punti. Il primo punto viene creato dai dati di input di streaming, mentre gli altri due vengono creati manualmente.
SELECT
CreateLineString(CreatePoint(input.latitude, input.longitude), CreatePoint(10.0, 10.0), CreatePoint(10.5, 10.5))
FROM input
Esempio di input
| latitudine | longitudine |
|---|---|
| 3.0 | -10.2 |
| -87.33 | 20,2321 |
Esempio di output
{"type" : "LineString", "coordinate" : [ [-10.2, 3.0], [10.0, 10.0], [10.5, 10.5] ]}
{"type" : "LineString", "coordinate" : [ [20.2321, -87.33], [10.0, 10.0], [10.5, 10.5] ]}
Per ulteriori dettagli, visitare la referenza CreateLineString.
CreatePoint
La CreatePoint funzione accetta una latitudine e una longitudine e restituisce un punto GeoJSON, che può essere tracciato su una mappa. Le latitudini e le longitudini devono essere un tipo di dato float.
La query di esempio seguente usa CreatePoint per creare un punto usando latitudine e longitudini dai dati di input di streaming.
SELECT
CreatePoint(input.latitude, input.longitude)
FROM input
Esempio di input
| latitudine | longitudine |
|---|---|
| 3.0 | -10.2 |
| -87.33 | 20.2321 |
Esempio di output
{"type" : "Point", "coordinates" : [-10.2, 3.0]}
{"type" : "Point", "coordinate" : [20.2321, -87.33]}
Per ulteriori informazioni, visitare la documentazione di CreatePoint.
CreatePolygon
La CreatePolygon funzione accetta punti e restituisce un record poligono GeoJSON. L'ordine dei punti deve seguire l'orientamento dell'anello destro o in senso antiorario. Immagina di camminare da un punto a un altro nell'ordine in cui sono stati dichiarati. Il centro del poligono sarebbe sempre alla tua sinistra.
La query di esempio seguente usa CreatePolygon per creare un poligono da tre punti. I primi due punti vengono creati manualmente e l'ultimo punto viene creato dai dati di input.
SELECT
CreatePolygon(CreatePoint(input.latitude, input.longitude), CreatePoint(10.0, 10.0), CreatePoint(10.5, 10.5), CreatePoint(input.latitude, input.longitude))
FROM input
Esempio di input
| latitudine | longitudine |
|---|---|
| 3.0 | -10.2 |
| -87.33 | 20.2321 |
Esempio di output
{"type" : "Polygon", "coordinate" : [[ [-10.2, 3.0], [10.0, 10.0], [10.5, 10.5], [-10.2, 3.0] ]]}
{"type" : "Polygon", "coordinate" : [[ [20.2321, -87.33], [10.0, 10.0], [10.5, 10.5], [20.2321, -87.33] ]]}
Per ulteriori informazioni, visitare il riferimento CreatePolygon.
ST_DISTANCE
La ST_DISTANCE funzione restituisce la distanza tra due geometrie in metri.
La query seguente usa ST_DISTANCE per generare un evento quando una stazione di servizio è inferiore a 10 km dall'auto.
SELECT Cars.Location, Station.Location
FROM Cars c
JOIN Station s ON ST_DISTANCE(c.Location, s.Location) < 10 * 1000
Per ulteriori informazioni, visitare la pagina di riferimento ST_DISTANCE.
ST_OVERLAPS
La ST_OVERLAPS funzione confronta due geometrie. Se le geometrie si sovrappongono, la funzione restituisce un valore 1. La funzione restituisce 0 se le geometrie non si sovrappongono.
La query seguente usa ST_OVERLAPS per generare un evento quando un edificio si trova all'interno di una possibile zona di inondazione.
SELECT Building.Polygon, Building.Polygon
FROM Building b
JOIN Flooding f ON ST_OVERLAPS(b.Polygon, b.Polygon)
La query di esempio seguente genera un evento quando una tempesta è diretta verso un'auto.
SELECT Cars.Location, Storm.Course
FROM Cars c, Storm s
JOIN Storm s ON ST_OVERLAPS(c.Location, s.Course)
Per ulteriori informazioni, consultare il riferimento ST_OVERLAPS.
ST_INTERSECTS
La ST_INTERSECTS funzione confronta due geometrie. Se le geometrie si intersecano, la funzione restituisce 1. La funzione restituisce 0 se le geometrie non si intersecano tra loro.
La query di esempio seguente usa ST_INTERSECTS per determinare se una strada pavimentata interseca una strada di sporcizia.
SELECT
ST_INTERSECTS(input.pavedRoad, input.dirtRoad)
FROM input
Esempio di input
| datacenterArea | area di tempesta |
|---|---|
| {"type":"LineString", "coordinates": [ [-10.0, 0.0], [0.0, 0.0], [10.0, 0.0] ]} | {"type":"LineString", "coordinates": [ [0.0, 10.0], [0.0, 0.0], [0.0, -10.0] ]} |
| {"type":"LineString", "coordinates": [ [-10.0, 0.0], [0.0, 0.0], [10.0, 0.0] ]} | {"type":"LineString", "coordinates": [ [-10.0, 10.0], [0.0, 10.0], [10.0, 10.0] ]} |
Esempio di output
1
0
Per ulteriori informazioni, visitare il riferimento ST_INTERSECTS.
ST_WITHIN
La ST_WITHIN funzione determina se una geometria si trova all'interno di un'altra geometria. Se il primo è contenuto nell'ultimo, la funzione restituirà 1. La funzione restituirà 0 se la prima geometria non si trova nell'ultima.
La query di esempio seguente usa ST_WITHIN per determinare se il punto di destinazione del recapito si trova all'interno del poligono del magazzino specificato.
SELECT
ST_WITHIN(input.deliveryDestination, input.warehouse)
FROM input
Esempio di input
| destinazione di consegna | magazzino |
|---|---|
| {"type":"Point", "coordinate": [76.6, 10.1]} | {"type":"Polygon", "coordinates": [ [0.0, 0.0], [10.0, 0.0], [10.0, 10.0], [0.0, 10.0], [0.0, 0.0] ]} |
| {"type":"Point", "coordinate": [15.0, 15.0]} | {"type":"Polygon", "coordinate": [ [10.0, 10.0], [20.0, 10.0], [20.0, 20.0], [10.0, 20.0], [10.0, 10.0] ]} |
Esempio di output
0
1
Per ulteriori informazioni, visitare la sezione ST_WITHIN.
Passaggi successivi
- Introduzione ad Analisi dei flussi di Azure
- Introduzione all'uso di Analisi dei flussi di Azure
- Ridimensionare i processi di Analisi dei flussi di Azure
- Informazioni di riferimento sul linguaggio di query di Analisi di flusso di Azure
- Informazioni di riferimento sulle API REST di gestione di Analisi di flusso di Azure