Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Fungsi geospasial di Azure Stream Analytics memungkinkan analitik real time pada data geospasial streaming. Hanya dengan beberapa baris kode, Anda dapat mengembangkan solusi tingkat produksi untuk skenario yang kompleks. Fungsi-fungsi ini mendukung semua jenis WKT dan GeoJSON Point, Polygon, dan LineString.
Contoh skenario yang dapat memperoleh manfaat dari fungsi geospasial meliputi:
- Berbagi tumpangan
- Manajemen armada
- Pelacakan aset
- Pembatasan geografis
- Pelacakan telepon di seluruh stasiun sel
Bahasa Kueri Analisis Aliran memiliki tujuh fungsi geospasial bawaan: CreateLineString, CreatePoint, CreatePolygon, ST_DISTANCE, ST_OVERLAPS, ST_INTERSECTS, dan ST_WITHIN.
CreateLineString
Fungsi ini CreateLineString menerima titik dan mengembalikan GeoJSON LineString, yang dapat diplot sebagai garis pada peta. Anda harus memiliki setidaknya dua poin untuk membuat LineString. Titik LineString akan terhubung secara berurutan.
Kueri berikut menggunakan CreateLineString untuk membuat LineString menggunakan tiga poin. Poin pertama dibuat dari data input streaming, sementara dua lainnya dibuat secara manual.
SELECT
CreateLineString(CreatePoint(input.latitude, input.longitude), CreatePoint(10.0, 10.0), CreatePoint(10.5, 10.5))
FROM input
Contoh input
| garis lintang | garis bujur |
|---|---|
| 3.0 | -10.2 |
| -87.33 | 20.2321 |
Contoh output
{"type" : "LineString", "coordinates" : [ [-10.2, 3.0], [10.0, 10.0], [10.5, 10.5] ]}
{"type" : "LineString", "coordinates" : [ [20.2321, -87.33], [10.0, 10.0], [10.5, 10.5] ]}
Untuk mempelajari lebih lanjut, kunjungi referensi CreateLineString .
CreatePoint
Fungsi ini CreatePoint menerima garis lintang dan bujur dan mengembalikan titik GeoJSON, yang dapat diplot pada peta. Garis lintang dan bujur Anda harus berupa jenis data float .
Contoh kueri berikut menggunakan CreatePoint untuk membuat titik menggunakan garis lintang dan bujur dari data input streaming.
SELECT
CreatePoint(input.latitude, input.longitude)
FROM input
Contoh input
| garis lintang | garis bujur |
|---|---|
| 3.0 | -10.2 |
| -87.33 | 20.2321 |
Contoh output
{"type" : "Point", "coordinates" : [-10.2, 3.0]}
{"type" : "Point", "coordinates" : [20.2321, -87.33]}
Untuk mempelajari selengkapnya, kunjungi referensi CreatePoint .
CreatePolygon
Fungsi menerima CreatePolygon poin dan mengembalikan rekaman poligon GeoJSON. Urutan titik harus mengikuti orientasi cincin kanan, atau berlawanan arah jaring jam. Bayangkan berjalan dari satu titik ke titik lain sesuai urutan penetapan mereka. Pusat poligon akan berada di sebelah kiri Anda setiap saat.
Contoh kueri berikut menggunakan CreatePolygon untuk membuat poligon dari tiga titik. Dua titik pertama dibuat secara manual, dan titik terakhir dibuat dari data 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
Contoh input
| garis lintang | garis bujur |
|---|---|
| 3.0 | -10.2 |
| -87.33 | 20.2321 |
Contoh output
{"type" : "Polygon", "coordinates" : [[ [-10.2, 3.0], [10.0, 10.0], [10.5, 10.5], [-10.2, 3.0] ]]}
{"type" : "Polygon", "coordinates" : [[ [20.2321, -87.33], [10.0, 10.0], [10.5, 10.5], [20.2321, -87.33] ]]}
Untuk mempelajari lebih lanjut, kunjungi referensi CreatePolygon .
ST_DISTANCE
Fungsi ST_DISTANCE ini mengembalikan jarak antara dua geometri dalam meter.
Kueri berikut menggunakan ST_DISTANCE untuk menghasilkan kejadian ketika pom bensin kurang dari 10 km dari mobil.
SELECT Cars.Location, Station.Location
FROM Cars c
JOIN Station s ON ST_DISTANCE(c.Location, s.Location) < 10 * 1000
Untuk mempelajari lebih lanjut, kunjungi referensi ST_DISTANCE .
ST_OVERLAPS
Fungsi ini ST_OVERLAPS membandingkan dua geometri. Jika geometri tumpang tindih, fungsi mengembalikan 1. Fungsi mengembalikan 0 jika geometri tidak tumpang tindih.
Kueri berikut menggunakan ST_OVERLAPS untuk menghasilkan peristiwa saat bangunan berada dalam zona banjir yang mungkin terjadi.
SELECT Building.Polygon, Building.Polygon
FROM Building b
JOIN Flooding f ON ST_OVERLAPS(b.Polygon, b.Polygon)
Contoh kueri di bawah ini menghasilkan peristiwa ketika sebuah badai menuju ke arah mobil.
SELECT Cars.Location, Storm.Course
FROM Cars c, Storm s
JOIN Storm s ON ST_OVERLAPS(c.Location, s.Course)
Untuk mempelajari lebih lanjut, kunjungi referensi ST_OVERLAPS .
ST_INTERSECTS
Fungsi ini ST_INTERSECTS membandingkan dua geometri. Jika geometri bersinggungan, maka fungsi mengembalikan 1. Fungsi mengembalikan 0 jika geometri tidak saling bersinggungan.
Contoh kueri berikut menggunakan ST_INTERSECTS untuk menentukan apakah jalan beraspal berpotingan dengan jalan tanah.
SELECT
ST_INTERSECTS(input.pavedRoad, input.dirtRoad)
FROM input
Contoh input
| area pusat data | stormArea |
|---|---|
| {"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] ]} |
Contoh output
1
0
Untuk mempelajari lebih lanjut, kunjungi referensi ST_INTERSECTS .
ST_WITHIN
Fungsi ST_WITHIN menentukan apakah suatu geometri berada dalam geometri yang lain. Jika yang pertama terkandung dalam yang terakhir, fungsi akan mengembalikan 1. Fungsi akan mengembalikan 0 jika geometri pertama tidak terletak dalam yang terakhir.
Contoh kueri berikut menggunakan ST_WITHIN untuk menentukan apakah titik tujuan pengiriman berada dalam poligon gudang yang diberikan.
SELECT
ST_WITHIN(input.deliveryDestination, input.warehouse)
FROM input
Contoh input
| tujuanPengiriman | warehouse |
|---|---|
| {"type":"Point", "coordinates": [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", "coordinates": [15.0, 15.0]} | {"type":"Polygon", "coordinates": [ [10.0, 10.0], [20.0, 10.0], [20.0, 20.0], [10.0, 20.0], [10.0, 10.0] ]} |
Contoh output
0
1
Untuk mempelajari lebih lanjut, kunjungi referensi ST_WITHIN .