Share via


Inleiding tot georuimtelijke functies van Stream Analytics

Georuimtelijke functies in Azure Stream Analytics maken realtime analyses mogelijk voor het streamen van georuimtelijke gegevens. Met slechts een paar regels code kunt u een oplossing op productieniveau ontwikkelen voor complexe scenario's. Deze functies ondersteunen alle WKT-typen en GeoJSON Point, Polygon en LineString.

Voorbeelden van scenario's die kunnen profiteren van georuimtelijke functies zijn:

  • Rit delen
  • Vlootbeheer
  • Bijhouden van assets
  • Geo-fencing
  • Telefoontracering tussen mobiele sites

Stream Analytics Query Language 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 LineString, die kan worden uitgezet als een lijn op een kaart. U moet ten minste twee punten hebben om een LineString te maken. De LineString-punten worden op volgorde verbonden.

De volgende query gebruikt CreateLineString om een LineString te maken met behulp van drie punten. Het eerste punt wordt gemaakt op basis van streaming-invoergegevens, terwijl de andere twee handmatig worden gemaakt.

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

Invoervoorbeeld

breedtegraad lengtegraad
3,0 -10.2
-87.33 20.2321

Voorbeeld van uitvoer

{"type" : "LineString", "coördinaten" : [ [-10.2, 3.0], [10.0, 10.0], [10.5, 10.5] ]}

{"type" : "LineString", "coördinaten" : [ [20.2321, -87.33], [10.0, 10.0], [10.5, 10.5] ]}

Ga naar de CreateLineString-naslaginformatie voor meer informatie.

CreatePoint

De CreatePoint functie accepteert een breedtegraad en lengtegraad en retourneert een GeoJSON-punt, dat kan worden uitgezet op een kaart. Uw breedte- en lengtegraden moeten een float-gegevenstype zijn.

In de volgende voorbeeldquery wordt gebruikgemaakt CreatePoint van het maken van een punt met behulp van breedtegraden en lengtegraden op basis van streaming-invoergegevens.

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

Invoervoorbeeld

breedtegraad lengtegraad
3,0 -10.2
-87.33 20.2321

Voorbeeld van uitvoer

{"type" : "Punt", "coördinaten" : [-10.2, 3.0]}

{"type" : "Punt", "coördinaten" : [20.2321, -87.33]}

Ga naar de CreatePoint-verwijzing voor meer informatie.

CreatePolygon

De CreatePolygon functie accepteert punten en retourneert een GeoJSON-veelhoekrecord. De volgorde van de punten moet de richting van de rechterring of linksom volgen. Stel je voor dat je van het ene punt naar het andere loopt in de volgorde waarin ze zijn aangegeven. Het midden van de veelhoek zou de hele tijd links van je zijn.

De volgende voorbeeldquery gebruikt CreatePolygon om een veelhoek te maken op basis van drie punten. De eerste twee punten worden handmatig gemaakt en het laatste punt wordt gemaakt op basis van invoergegevens.

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

Invoervoorbeeld

breedtegraad lengtegraad
3,0 -10.2
-87.33 20.2321

Voorbeeld van uitvoer

{"type" : "Veelhoek", "coördinaten" : [[ [-10.2, 3.0], [10.0, 10.0], [10.5, 10.5], [-10.2, 3.0] ]]}

{"type" : "Polygon", "coördinaten" : [[ [20.2321, -87.33], [10.0, 10.0], [10.5, 10.5], [20.2321, -87.33] ]]}

Ga voor meer informatie naar de naslaginformatie over CreatePolygon .

ST_DISTANCE

De ST_DISTANCE functie retourneert de afstand tussen twee geometrieën in meters.

De volgende query wordt gebruikt ST_DISTANCE om een gebeurtenis te genereren wanneer een tankstation zich op minder dan 10 km van de auto bevindt.

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

Ga naar de ST_DISTANCE referentie voor meer informatie.

ST_OVERLAPS

De ST_OVERLAPS functie vergelijkt twee geometrieën. Als de geometrieën elkaar overlappen, retourneert de functie een 1. De functie retourneert 0 als de geometrieën elkaar niet overlappen.

De volgende query gebruikt ST_OVERLAPS om een gebeurtenis te genereren wanneer een gebouw zich binnen een mogelijke overstromingszone bevindt.

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

De volgende voorbeeldquery genereert een gebeurtenis wanneer een storm op weg is naar een auto.

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

Ga naar de ST_OVERLAPS referentie voor meer informatie.

ST_INTERSECTS

De ST_INTERSECTS functie vergelijkt twee geometrieën. Als de geometrieën elkaar snijden, retourneert de functie 1. De functie retourneert 0 als de geometrieën elkaar niet snijden.

De volgende voorbeeldquery wordt gebruikt ST_INTERSECTS om te bepalen of een geplaveide weg een onverharde weg doorkruist.

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

Invoervoorbeeld

datacenterArea stormArea
{"type":"LineString", "coördinaten": [ [-10.0, 0.0], [0.0, 0.0], [10.0, 0.0] ]} {"type":"LineString", "coördinaten": [ [0.0, 10.0], [0.0, 0.0], [0.0, -10.0] ]}
{"type":"LineString", "coördinaten": [ [-10.0, 0.0], [0.0, 0.0], [10.0, 0.0] ]} {"type":"LineString", "coördinaten": [ [-10.0, 10.0], [0.0, 10.0], [10.0, 10.0] ]}

Voorbeeld van uitvoer

1

0

Ga voor meer informatie naar de naslaginformatie over ST_INTERSECTS .

ST_WITHIN

De ST_WITHIN functie bepaalt of een geometrie zich binnen een andere geometrie bevindt. Als de eerste is opgenomen in de laatste, retourneert de functie 1. De functie retourneert 0 als de eerste geometrie zich niet binnen de laatste bevindt.

In de volgende voorbeeldquery wordt gebruikt ST_WITHIN om te bepalen of het leveringsdoelpunt zich binnen de opgegeven magazijnveelhoek bevindt.

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

Invoervoorbeeld

deliveryDestination Magazijn
{"type":"Point", "coördinaten": [76.6, 10.1]} {"type":"Polygon", "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] ]}

Uitvoervoorbeeld

0

1

Ga voor meer informatie naar de referentie voor ST_WITHIN .

Volgende stappen