Inleiding tot Stream Analytics georuimtelijke functies
Georuimtelijke functies in Azure Stream Analytics realtime analyse mogelijk maken van georuimtelijke gegevens in stream. Met slechts een paar regels code kunt u een oplossing voor productie kwaliteit ontwikkelen voor complexe scenario's. Deze functies ondersteunen alle WKT-typen en geojson Point, veelhoek en Lines Tring.
Voor beelden van scenario's die kunnen profiteren van georuimtelijke functies zijn:
- Negeren: delen
- Vloot beheer
- Bijhouden van assets
- Geoomheining
- Telefonisch volgen over sites
Stream Analytics query taal heeft zeven ingebouwde georuimtelijke functies: CreateLineString, CreatePoint, CreatePolygon, ST_DISTANCE, ST_OVERLAPS, ST_INTERSECTS en ST_WITHIN.
CreateLineString
De CreateLineString functie accepteert punten en retourneert een geojson-Lines Tring, die als een lijn op een kaart kan worden getekend. U moet ten minste twee punten hebben om een Lines Tring te maken. De Lines Tring punten worden in de aangegeven volg orde verbonden.
De volgende query maakt gebruik CreateLineString van om een Lines Tring te maken met behulp van drie punten. Het eerste punt wordt gemaakt op basis van streaming-invoer gegevens, terwijl de andere twee hand matig worden gemaakt.
SELECT
CreateLineString(CreatePoint(input.latitude, input.longitude), CreatePoint(10.0, 10.0), CreatePoint(10.5, 10.5))
FROM input
Invoer voorbeeld
| breedtegraad | lengte graad |
|---|---|
| 3,0 | -10,2 |
| -87,33 | 20,2321 |
Uitvoer voorbeeld
{"type": "Lines Tring", "coördinaten": [[-10,2, 3,0], [10,0, 10,0], [10,5, 10,5]]}
{"type": "Lines Tring", "coördinaten": [[20,2321,-87,33], [10,0, 10,0], [10,5, 10,5]]}
Ga voor meer informatie naar de CreateLineString -referentie.
CreatePoint
De CreatePoint functie accepteert een breedte graad en lengte graad en retourneert een geojson-punt, dat op een kaart kan worden getekend. Uw breedte graad en lengte graad moeten een float -gegevens type zijn.
In het volgende voor beeld wordt een-query gebruikt CreatePoint om een punt te maken met behulp van de breedte graad en de lengte graad van streaming-invoer gegevens.
SELECT
CreatePoint(input.latitude, input.longitude)
FROM input
Invoer voorbeeld
| breedtegraad | lengte graad |
|---|---|
| 3,0 | -10,2 |
| -87,33 | 20,2321 |
Uitvoer voorbeeld
{"type": "punt", "coördinaten": [-10,2, 3,0]}
{"type": "punt", "coördinaten": [20,2321,-87,33]}
Ga voor meer informatie naar de CreatePoint -referentie.
CreatePolygon
De CreatePolygon functie accepteert punten en retourneert een GEOjson-veelhoek record. De volg orde van de punten moet volgen op de juiste ring richting of linksom. Stel dat u vanaf het ene punt naar het andere wilt lopen in de volg orde waarin ze zijn gedeclareerd. Het midden van de veelhoek is de gehele tijd aan uw linkerkant.
Met de volgende voorbeeld query maakt CreatePolygon u een veelhoek van drie punten. De eerste twee punten worden hand matig gemaakt en het laatste punt wordt gemaakt op basis van de invoer gegevens.
SELECT
CreatePolygon(CreatePoint(input.latitude, input.longitude), CreatePoint(10.0, 10.0), CreatePoint(10.5, 10.5), CreatePoint(input.latitude, input.longitude))
FROM input
Invoer voorbeeld
| breedtegraad | lengte graad |
|---|---|
| 3,0 | -10,2 |
| -87,33 | 20,2321 |
Uitvoer voorbeeld
{"type": "veelhoek", "coördinaten": [[[-10,2, 3,0], [10,0, 10,0], [10,5, 10,5], [-10,2, 3,0]]]}
{"type": "veelhoek", "coördinaten": [[[20,2321,-87,33], [10,0, 10,0], [10,5, 10,5], [20,2321,-87,33]]]}
Ga voor meer informatie naar de CreatePolygon -referentie.
ST_DISTANCE
De ST_DISTANCE functie retourneert de afstand tussen twee geometrieën in meters.
De volgende query gebruikt ST_DISTANCE voor het genereren van een gebeurtenis wanneer een gas kleiner is dan 10 km van de auto.
SELECT Cars.Location, Station.Location
FROM Cars c
JOIN Station s ON ST_DISTANCE(c.Location, s.Location) < 10 * 1000
Ga voor meer informatie naar de ST_DISTANCE -referentie.
ST_OVERLAPS
De ST_OVERLAPS functie vergelijkt twee geometrieën. Als de geometrische elementen elkaar overlappen, retourneert de functie een 1. De functie retourneert 0 als de geometrische elementen elkaar niet overlappen.
De volgende query maakt gebruik ST_OVERLAPS van om een gebeurtenis te genereren wanneer een gebouw zich binnen een mogelijke Flooding-zone bevindt.
SELECT Building.Polygon, Building.Polygon
FROM Building b
JOIN Flooding f ON ST_OVERLAPS(b.Polygon, b.Polygon)
Met de volgende voorbeeld query wordt een gebeurtenis gegenereerd wanneer een storm is gericht op een auto.
SELECT Cars.Location, Storm.Course
FROM Cars c, Storm s
JOIN Storm s ON ST_OVERLAPS(c.Location, s.Course)
Ga voor meer informatie naar de ST_OVERLAPS -referentie.
ST_INTERSECTS
De ST_INTERSECTS functie vergelijkt twee geometrieën. Als de geometrie van elkaar kruist, retourneert de functie 1. De functie retourneert 0 als de geometrische elementen elkaar niet overlappen.
De volgende voorbeeld query wordt gebruikt ST_INTERSECTS om te bepalen of een paved-weg een wegsnij punt kruist.
SELECT
ST_INTERSECTS(input.pavedRoad, input.dirtRoad)
FROM input
Invoer voorbeeld
| datacenterArea | stormArea |
|---|---|
| {"type": "Lines Tring", "coördinaten": [[-10,0, 0,0], [0,0, 0,0], [10,0, 0,0]]} | {"type": "Lines Tring", "coördinaten": [[0,0, 10,0], [0,0, 0,0], [0,0,-10,0]]} |
| {"type": "Lines Tring", "coördinaten": [[-10,0, 0,0], [0,0, 0,0], [10,0, 0,0]]} | {"type": "Lines Tring", "coördinaten": [[-10,0, 10,0], [0,0, 10,0], [10,0, 10,0]]} |
Uitvoer voorbeeld
1
0
Ga voor meer informatie naar de ST_INTERSECTS -referentie.
ST_WITHIN
De ST_WITHIN functie bepaalt of een geometrie zich binnen een andere geometrie bevindt. Als de eerste deel uitmaakt van de laatste, wordt 1 geretourneerd door de functie. De functie retourneert 0 als de eerste geometrie zich niet in de laatste Geometry bevindt.
In de volgende voorbeeld query wordt gebruikt ST_WITHIN om te bepalen of het bezorgings doel punt zich binnen de opgegeven Warehouse-veelhoek bevindt.
SELECT
ST_WITHIN(input.deliveryDestination, input.warehouse)
FROM input
Invoer voorbeeld
| deliveryDestination | uitslag |
|---|---|
| {"type": "punt", "coördinaten": [76,6, 10,1]} | {"type": "veelhoek", "coördinaten": [[0,0, 0,0], [10,0, 0,0], [10,0, 10,0], [0,0, 10,0], [0,0, 0,0]]} |
| {"type": "punt", "coördinaten": [15,0, 15,0]} | {"type": "veelhoek", "coördinaten": [[10,0, 10,0], [20,0, 10,0], [20,0, 20,0], [10,0, 20,0], [10,0, 10,0]]} |
Uitvoer voorbeeld
0
1
Ga voor meer informatie naar de ST_WITHIN -referentie.