Bevezetés a Stream Analytics térinformatikai funkcióiba

Az Azure Stream Analytics térinformatikai funkciói valós idejű elemzést tesznek lehetővé a streamelt térinformatikai adatokon. Mindössze néhány sornyi kóddal létrehozhat egy éles szintű megoldást összetett forgatókönyvekhez. Ezek a függvények támogatják az összes WKT-típust, valamint a GeoJSON-pontot, a sokszöget és a LineStringet.

Példák a térinformatikai függvények előnyeire:

  • Telekocsi
  • Flottakezelés
  • Eszközkövetés
  • Geokerítés
  • Telefonkövetés a mobilwebhelyeken

A Stream Analytics lekérdezési nyelv hét beépített térinformatikai függvényt nyújt: CreateLineString, CreatePoint, CreatePolygon, ST_DISTANCE, ST_OVERLAPS, ST_INTERSECTS és ST_WITHIN.

CreateLineString

A CreateLineString függvény pontokat fogad el, és egy GeoJSON LineString értéket ad vissza, amely vonalként ábrázolható a térképen. Legalább két ponttal kell rendelkeznie a LineString létrehozásához. A LineString-pontok sorrendben lesznek csatlakoztatva.

Az alábbi lekérdezés CreateLineString három ponttal hoz létre egy LineString-et. Az első pont a streamelési bemeneti adatokból jön létre, míg a másik kettő manuálisan jön létre.

SELECT  
     CreateLineString(CreatePoint(input.latitude, input.longitude), CreatePoint(10.0, 10.0), CreatePoint(10.5, 10.5))  
FROM input  

Bevitel példa

szélesség hosszúság
3.0 -10.2
-87.33 20.2321

Példa kimenetre

{"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] ]}

További információért látogasson el a CreateLineString referenciára.

CreatePoint

A CreatePoint függvény szélességet és hosszúságot fogad el, és geoJSON-pontot ad vissza, amely térképen ábrázolható. A szélességeknek és hosszúságoknak lebegőpontos adattípusnak kell lenniük.

Az alábbi példa lekérdezés CreatePoint használatával egy pontot hoz létre a folyamatos adatbeviteli adatokból származó szélességi és hosszúsági koordináták használatával.

SELECT  
     CreatePoint(input.latitude, input.longitude)  
FROM input 

Bemeneti példa

szélesség hosszúság
3.0 -10.2
-87.33 20.2321

Példa kimenetre

{"type" : "Point", "coordinates" : [-10.2, 3.0]}

{"type" : "Point", "coordinates" : [20.2321, -87.33]}

További információ: CreatePoint-referencia .

CreatePolygon

A CreatePolygon függvény pontokat fogad el, és GeoJSON sokszögrekordot ad vissza. A pontok sorrendjének a jobb oldali gyűrű tájolását vagy az óramutató járásával ellentétes irányban kell követnie. Képzelje el, hogy az egyik pontról a másikra sétál a deklarált sorrendben. A sokszög középpontja egész idő alatt a bal oldalon lesz.

Az alábbi példa lekérdezés CreatePolygon három pontból hoz létre sokszöget. Az első két pont manuálisan jön létre, az utolsó pont pedig bemeneti adatokból jön létre.

SELECT  
     CreatePolygon(CreatePoint(input.latitude, input.longitude), CreatePoint(10.0, 10.0), CreatePoint(10.5, 10.5), CreatePoint(input.latitude, input.longitude))  
FROM input  

Példa bevitelre

szélesség hosszúság
3.0 -10.2
-87.33 20.2321

Példa kimenetre

{"type" : "Sokszög", "koordináták" : [[ [-10.2, 3.0], [10.0, 10.0], [10.5, 10.5], [-10.2, 3.0] ]]}

{"type" : "Sokszög", "koordináták" : [[ [[20.2321, -87.33], [10.0, 10.0], [10.5, 10.5], [20.2321, -87.33] ]]}

További információ: CreatePolygon-referencia .

ST_DISTANCE

A ST_DISTANCE függvény két mértani távolság távolságát adja vissza méterben.

Az alábbi lekérdezés egy esemény generálására használ ST_DISTANCE , ha egy benzinkút kevesebb mint 10 km-re van az autótól.

SELECT Cars.Location, Station.Location 
FROM Cars c  
JOIN Station s ON ST_DISTANCE(c.Location, s.Location) < 10 * 1000

További információért látogasson el a ST_DISTANCE hivatkozásra.

ST_OVERLAPS

A ST_OVERLAPS függvény két geometriát hasonlít össze. Ha a geometriák átfedésben vannak, a függvény egy 1 értéket ad vissza. A függvény 0 értéket ad vissza, ha a geometriák nem fedik egymást.

Az alábbi lekérdezés egy esemény generálására használ ST_OVERLAPS , amikor egy épület egy lehetséges elárasztási zónán belül van.

SELECT Building.Polygon, Building.Polygon 
FROM Building b 
JOIN Flooding f ON ST_OVERLAPS(b.Polygon, b.Polygon) 

Az alábbi példa lekérdezés eseményt hoz létre, amikor egy vihar egy autó felé tart.

SELECT Cars.Location, Storm.Course
FROM Cars c, Storm s
JOIN Storm s ON ST_OVERLAPS(c.Location, s.Course)

További információért látogasson el a ST_OVERLAPS hivatkozásra.

ST_INTERSECTS

A ST_INTERSECTS függvény két geometriát hasonlít össze. Ha a geometriák keresztezik egymást, akkor a függvény 1 értéket ad vissza. A függvény 0 értéket ad vissza, ha a geometriák nem metszik egymást.

Az alábbi példa lekérdezés azt határozza ST_INTERSECTS meg, hogy egy burkolt út keresztezi-e a földutat.

SELECT  
     ST_INTERSECTS(input.pavedRoad, input.dirtRoad)  
FROM input  

Példa bevitelre

adatközpont terület viharTerület
{"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] ]}

Példa kimenetre

1

0

További információért látogasson el a ST_INTERSECTS hivatkozásra.

ST_WITHIN

A ST_WITHIN függvény meghatározza, hogy egy geometria egy másik geometrián belül van-e. Ha az első szerepel az utolsóban, a függvény 1 értéket ad vissza. A függvény 0 értéket ad vissza, ha az első geometria nem az utolsón belül található.

Az alábbi példa lekérdezés azt határozza ST_WITHIN meg, hogy a kézbesítési célpont az adott raktári sokszögön belül van-e.

SELECT  
     ST_WITHIN(input.deliveryDestination, input.warehouse)  
FROM input 

Példa bevitelre

kézbesítésiCél 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] ]}

Példa kimenetre

0

1

További információért látogasson el a ST_WITHIN hivatkozásra.

Következő lépések