Megosztás a következőn keresztül:


Geofencing és térinformatikai összesítési forgatókönyvek az Azure Stream Analyticsszel

A beépített térinformatikai funkciókkal az Azure Stream Analytics segítségével olyan forgatókönyvekhez hozhat létre alkalmazásokat, mint a flottakezelés, az utazásmegosztás, a csatlakoztatott autók és az eszközkövetés.

Geokerítések kezelése

Az Azure Stream Analytics támogatja az alacsony késésű valós idejű geofencing számításokat a felhőben és a IoT Edge futtatókörnyezetben.

Geofencing forgatókönyv

Egy gyártó vállalatnak nyomon kell követnie az épületeikben lévő eszközöket. Minden eszközt GPS-szel szereltek fel, és értesítéseket szeretnének kapni, ha egy eszköz elhagy egy bizonyos területet.

Az ebben a példában használt referenciaadatok az épületek és az egyes épületekben engedélyezett eszközök geofenciaadatait tartalmaznak. Ne feledje, hogy a referenciaadatok statikusak vagy lassúak lehetnek. Ehhez a forgatókönyvhöz statikus referenciaadatokat használunk. Az adatstreamek folyamatosan bocsátják ki az eszközazonosítót és annak aktuális helyzetét.

Geofences definiálása referenciaadatokban

Geofence definiálható GeoJSON-objektum használatával. Az 1.2-es és újabb kompatibilitási verziójú feladatok esetében a geofencesek jól ismert szöveggel (WKT) is definiálhatók.NVARCHAR(MAX) A WKT egy Open Geospatial Consortium (OGC) szabvány, amely szöveges formátumban jeleníti meg a térbeli adatokat.

A beépített térinformatikai függvények definiált geofeneket használhatnak annak kiderítésére, hogy egy elem egy adott georedundáns sokszögben van-e vagy sem.

Az alábbi táblázat egy példa az Azure Blob Storage-ban vagy egy Azure SQL táblában tárolható geofence-referenciaadatokra. Minden helyet térinformatikai sokszög jelöl, és minden eszköz egy engedélyezett helyazonosítóhoz van társítva.

SiteID SiteName Geofence AllowedDeviceID
1 "Redmond Building 41" "POLYGON((-122.1337357922017 47.63782998329432,-122.13373042778369 47.637634793257305,-122.13346757130023 47.637642022530954,-122.13348902897235 47.637508280806806,-122.13361777500506 47.637508280806806,-122.13361241058703 47.63732393354484,-122.13265754417773 47.63730947490855,-122.13266290859576 47.637519124743164,-122.13302232460376 47.637515510097955,-122.13301696018573 47.63764925180358,-122.13272728161212 47.63764925180358,-122.13274873928424 47.63784082716388,-122.13373579220172 47.63782998329432))" "B"
2 "Redmond Building 40" "POLYGON((-122.1336154507967 47.6366745947009,-122.13361008637867 47.636483015064535,-122.13349206918201 47.636479400347675,-122.13349743360004 47.63636372927573,-122.13372810357532 47.63636372927573,-122.13373346799335 47.63617576323771,-122.13263912671528 47.63616491902258,-122.13264985555134 47.63635649982525,-122.13304682248554 47.636367344000604,-122.13305218690357 47.63650831807564,-122.13276250832996 47.636497473929516,-122.13277323716602 47.63668543881025,-122.1336154507967 47.6366745947009))" "A"
3 "Redmond Building 22" "POLIGON((-122.1361660248233 47.63758544698554,-122.13635263687564 47.6374083293018,-122.136 22389084293 47.63733603619712,-122.13622389084293 47.63717699101473,-122.13581619507266 47.63692757827657,-122.1355962539344 47.637046862778135,-122.13569281345798 47.63714458985965,-122.13570890671207 47.637314348246214,-122.13611660248233 47.63758544698554)" "C"

Riasztások létrehozása geofencia használatával

Az eszközök percenként kibocsáthatják az azonosítójukat és a tartózkodási helyüket egy nevű DeviceStreamInputstreamen keresztül. Az alábbi táblázat egy bemeneti adatfolyam.

Deviceid Geopozíció
"A" "POINT(-122.13292341559497 47.636318374032726)"
"B" "POINT(-122.13338475554553 47.63743531308874)"
"C" "POINT(-122.13354001095752 47.63627622505007)"

Írhat olyan lekérdezést, amely összekapcsolja az eszközstreamet a geofence referenciaadataival, és riasztást hoz létre minden alkalommal, amikor egy eszköz egy engedélyezett épületen kívül tartózkodik.

SELECT DeviceStreamInput.DeviceID, SiteReferenceInput.SiteID, SiteReferenceInput.SiteName 
INTO Output
FROM DeviceStreamInput 
JOIN SiteReferenceInput
ON st_within(DeviceStreamInput.GeoPosition, SiteReferenceInput.Geofence) = 0
WHERE DeviceStreamInput.DeviceID = SiteReferenceInput.AllowedDeviceID

Az alábbi képen a geofencesek láthatóak. Láthatja, hogy az eszközök hol vannak a streamadatok bemenetének megfelelően.

Geofencesek készítése

A "C" eszköz a 2. épületazonosítóban található, amely a referenciaadatok szerint nem engedélyezett. Ennek az eszköznek a 3. épületazonosítóban kell lennie. A feladat futtatása riasztást hoz létre ehhez a konkrét szabálysértéshez.

Webhely több engedélyezett eszközzel

Ha egy hely több eszközt is engedélyez, az eszközazonosítók tömbje definiálható AllowedDeviceID , és egy User-Defined függvény használható a WHERE záradékban annak ellenőrzésére, hogy a stream eszközazonosítója megegyezik-e az adott listában szereplő eszközazonosítóval. További információkért tekintse meg a felhőbeli feladatok JavaScript UDF-oktatóanyagát és a peremhálózati feladatok C# UDF-oktatóanyagát .

Térinformatikai összesítés

Az Azure Stream Analytics támogatja az alacsony késésű valós idejű térinformatikai aggregációt a felhőben és a IoT Edge futtatókörnyezetben.

Térinformatikai összesítési forgatókönyv

Egy taxis vállalat egy valós idejű alkalmazást szeretne létrehozni, amely végigvezeti a taxisofőröket, akik a jelenleg nagyobb keresletet tapasztaló városok területére szeretnének utazni.

A vállalat referenciaadatokként tárolja a város logikai régióinak adatait. Minden régiót a RegionID, a RegionName és a Geofence határoz meg.

A georedundánsok meghatározása

Az alábbi táblázat egy példa az Azure Blob Storage-ban vagy egy Azure SQL táblában tárolható geofence-referenciaadatokra. Minden régiót egy térinformatikai sokszög jelöl, amely a streamelési adatokból érkező kérésekkel való korrelációra szolgál.

Ezek a sokszögek csak referenciaként szolgálnak, és nem jelölik a tényleges város logikai vagy fizikai elkülönítését.

RegionID RegionName Geofence
1 "SoHo" "POLIGON((-74.00279525078275 40.72833625216264,-74.00547745979765 40.721929158663244,-74.00125029839018 40.7189368021899 4,-73.9957785919998 40.72521409075776,-73.9972377137039 40.72557184584898,-74.00279525078275 40.72833625216264)"
2 "Chinatown" "POLYGON((-73.99712367114876 40.71281582267133,-73.9901070123658 40.71336881907936,-73.99023575839851 40.71452359088633,-73.98976368961189 40.71554823078944,-73.99551434573982 40.717337246783735,-73.99480624255989 40.718491949759304,-73.99652285632942 40.719109951574,-73.99776740131233 40.7168005470334,-73.99903340396736 40.71727219249899,-74.00193018970344 40.71938642421256,-74.00409741458748 40.71688186545551,-74.00051398334358 40.71517415773184,- 74.0004281526551 40.714377212470005,-73.99849696216438 40.713450141693166,-73.99748845157478 40.71405192594819,-73.99712367114876 40.71281582267133))"
3 "Tribeca" "POLIGON((-74.01091641815208 40.72583120006787;-74.013384050445 78 40.71436586362705,-74.01370591552757 40.713617702123415,-74.00862044723533 40.711308107057235,-74.00194711120628 40.7194238654018,-74.01091641815208 40.72583120006787)"

Adatok összesítése egy időablakban

Az alábbi táblázat a "rides" streamelési adatait tartalmazza.

UserID FromLocation ToLocation TripRequestedTime
"A" "POINT(-74.00726861389182 40.71610611981975)" "POINT(-73.98615095917779 40.703107386025835)" "2019-03-12T07:00:00Z"
"B" "POINT(-74.00249841021645 40.72382723889566)" "POINT(-74.01160699942085 40.71378884930115)" "2019-03-12T07:01:00Z"
"C" "POINT(-73.99680120565864 40.71643988624024)" "POINT(-73.98289663412544 40.72582343969828)" "2019-03-12T07:02:00Z"
"D" "POINT(-74.00741090068288 40.71615626755086)" "POINT(-73.97999843120539 40.73477895807408)" "2019-03-12T07:03:00Z"

A következő lekérdezés összekapcsolja az eszközstreamet a georedundáns referenciaadatokkal, és kiszámítja a kérések régiónkénti számát percenként 15 perces időkereten.

SELECT count(*) as NumberOfRequests, RegionsRefDataInput.RegionName 
FROM UserRequestStreamDataInput
JOIN RegionsRefDataInput 
ON st_within(UserRequestStreamDataInput.FromLocation, RegionsRefDataInput.Geofence) = 1
GROUP BY RegionsRefDataInput.RegionName, hoppingwindow(minute, 15, 1)

Ez a lekérdezés az elmúlt 15 percben percenkénti kérések számát adja ki a város egyes régióiban. Ezeket az információkat egyszerűen megjelenítheti a Power BI irányítópultja, vagy sms-üzenetként továbbíthatja az összes illesztőnek az Olyan szolgáltatásokkal való integráció révén, mint az Azure Functions.

Az alábbi képen a lekérdezés kimenete látható a Power BI-irányítópulton.

Eredménykimenet a Power BI-irányítópulton

Következő lépések