Oktatóanyag: Geokerítés beállítása az Azure Maps használatával
Ez az oktatóanyag bemutatja Azure Maps geokerítési szolgáltatások létrehozásának és használatának alapjait.
Vegyük példaként a következő esetet:
Az építési terület kezelőjének nyomon kell követnie a berendezéseket, amikor belép és elhagyja az építési terület szegélyét. Amikor egy berendezés kilép vagy belép ezekbe a szegélyhálózatokra, a rendszer e-mail-értesítést küld az üzemeltetési vezetőnek.
Azure Maps számos szolgáltatást nyújt az építési területre belépő és onnan kilépő berendezések nyomon követéséhez. Az oktatóanyagban a következőket végezheti el:
- Hozzon létre egy Azure Maps fiókot egy globális régióval.
- Geokerítési GeoJSON-adatok feltöltése, amelyek meghatározzák a monitorozni kívánt építési területeket. Az Adatfeltöltés API-val sokszög koordinátákként tölthet fel geokereket a Azure Maps-fiókjába.
- Állítson be két logikai alkalmazást , amelyek aktiválásakor e-mail-értesítéseket küldenek az építési hely üzemeltetési kezelőjének, amikor a berendezés belép és kilép a geokerítési területről.
- A Azure Event Grid használatával feliratkozhat a Azure Maps geofence eseményeinek be- és kilépésére. Két webhookesemény-előfizetést állított be, amelyek meghívják a két logikai alkalmazásban definiált HTTP-végpontokat. A logikai alkalmazások ezután elküldik a megfelelő e-mail-értesítéseket a geokerítésen túlra lépő vagy belépett berendezésekről.
- A Search Geofence Get API használatával értesítéseket kaphat, amikor egy berendezés kilép, és belép a geokerítési területekre.
Előfeltételek
- Ez az oktatóanyag a Postman-alkalmazást használja, de más API-fejlesztési környezetet is használhat.
Azure Maps-fiók létrehozása globális régióval
A Geofence API aszinkron eseményéhez a Azure Maps fiók régiótulajdonsága globális értékre van állítva. Ez nem használható Azure Maps-fiók létrehozásakor a Azure Portal, de számos más lehetőség is rendelkezésre áll az új Azure Maps fiók globális régióbeállítással történő létrehozására. Ez a szakasz azokat a három módszert sorolja fel, amelyekkel globálisra állított régióval rendelkező Azure Maps-fiókot hozhat létre.
Megjegyzés
Az location
ARM-sablon és a PowerShell-parancs New-AzMapsAccount
tulajdonsága is ugyanarra a tulajdonságra hivatkozik, mint a Region
Azure Portal mezője.
ARM-sablon használata egy globális régióval rendelkező Azure Maps-fiók létrehozásához
A Azure Maps-fiókját ARM-sablonnal kell létrehoznia, és ügyeljen arra, hogy az resources
ARM-sablon szakaszában legyen beállítva location
global
.
Azure Maps-fiók létrehozása globális régióval a PowerShell használatával
New-AzMapsAccount -ResourceGroupName your-Resource-Group -Name name-of-maps-account -SkuName g2 -Location global
Azure Maps-fiók létrehozása globális régióval az Azure CLI használatával
Az az maps account create Azure CLI-parancs nem rendelkezik helytulajdonságokkal, de alapértelmezés szerint "globális" értékre van állítva, így hasznos lehet egy Azure Maps-fiók létrehozása globális régióbeállítással a Geofence API aszinkron eseményhez való használatához.
Geokerítési GeoJSON-adatok feltöltése
Ebben az oktatóanyagban geokerítési GeoJSON-adatokat fog feltölteni, amelyek tartalmazzák a következőt FeatureCollection
: . A FeatureCollection
két geokerítést tartalmaz, amelyek sokszögletű területeket határoznak meg az építési területen belül. Az első geofence nem rendelkezik időkorlátokkal vagy korlátozásokkal. A másodikat csak munkaidőben lehet lekérdezni (9:00 és 17:00 között a Csendes-óceáni időzónában), és 2022. január 1. után már nem lesz érvényes. További információ a GeoJSON formátumról: Geofencing GeoJSON-adatok.
Tipp
A geokerítési adatokat bármikor frissítheti. További információ: Adatfeltöltési API.
A geokerítési GeoJSON-adatok feltöltése:
A Postman alkalmazásban válassza az Új lehetőséget.
Az Új létrehozása ablakban válassza a HTTP-kérelem lehetőséget.
Adja meg a kérelem nevét , például POST GeoJSON-adatfeltöltés.
Válassza a POST HTTP metódust.
Adja meg a következő URL-címet. A kérésnek a következő URL-címhez hasonlóan kell kinéznie (cserélje le az elemet
{Azure-Maps-Primary-Subscription-key}
az elsődleges előfizetési kulcsra):https://us.atlas.microsoft.com/mapData?subscription-key={Your-Azure-Maps-Subscription-key}&api-version=2.0&dataFormat=geojson
Az
geojson
URL-elérési út paramétere a feltöltött adatok adatformátumát jelöli.Válassza a Törzs lapot.
A legördülő listában válassza a nyers és a JSON lehetőséget.
Másolja ki a következő GeoJSON-adatokat, majd illessze be a Törzs ablakba:
{ "type": "FeatureCollection", "features": [ { "type": "Feature", "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.13393688201903, 47.63829579223815 ], [ -122.13389128446579, 47.63782047131512 ], [ -122.13240802288054, 47.63783312249837 ], [ -122.13238388299942, 47.63829037035086 ], [ -122.13393688201903, 47.63829579223815 ] ] ] }, "properties": { "geometryId": "1" } }, { "type": "Feature", "geometry": { "type": "Polygon", "coordinates": [ [ [ -122.13374376296996, 47.63784758098976 ], [ -122.13277012109755, 47.63784577367854 ], [ -122.13314831256866, 47.6382813338708 ], [ -122.1334782242775, 47.63827591198201 ], [ -122.13374376296996, 47.63784758098976 ] ] ] }, "properties": { "geometryId": "2", "validityTime": { "expiredTime": "2022-01-01T00:00:00", "validityPeriod": [ { "startTime": "2020-07-15T16:00:00", "endTime": "2020-07-15T24:00:00", "recurrenceType": "Daily", "recurrenceFrequency": 1, "businessDayOnly": true } ] } } } ] }
Kattintson a Küldés gombra.
A válaszablakban válassza a Fejlécek lapot.
Másolja ki az Operation-Location kulcs értékét, amely a
status URL
következő: . A használatávalstatus URL
ellenőrizzük a GeoJSON-adatok feltöltésének állapotát.https://us.atlas.microsoft.com/mapData/operations/{operationId}?api-version=2.0
A GeoJSON-adatok feltöltési állapotának ellenőrzése
A GeoJSON-adatok állapotának ellenőrzéséhez és egyedi azonosítójának lekéréséhez (udid
):
Válassza az Új lehetőséget.
Az Új létrehozása ablakban válassza a HTTP-kérelem lehetőséget.
Adja meg a kérelem nevét , például GET Adatfeltöltési állapot.
Válassza a GET HTTP metódust.
Adja meg a
status URL
Geofencing GeoJSON-adatok feltöltése részben másolt adatokat. A kérésnek a következő URL-címhez hasonlóan kell kinéznie (cserélje le az elemet{Azure-Maps-Primary-Subscription-key}
az elsődleges előfizetési kulcsra):https://us.atlas.microsoft.com/mapData/{operationId}?api-version=2.0&subscription-key={Your-Azure-Maps-Subscription-key}
Kattintson a Küldés gombra.
A válaszablakban válassza a Fejlécek lapot.
Másolja ki a Resource-Location kulcs értékét, amely a
resource location URL
következő: . Aresource location URL
a feltöltött adatok egyedi azonosítóját (udid
) tartalmazza. Mentse audid
fájlt a Get Geofence API lekérdezéséhez az oktatóanyag utolsó szakaszában.
(Nem kötelező) GeoJSON-adatok metaadatainak lekérése
A feltöltött adatokból lekérheti a metaadatokat. A metaadatok olyan információkat tartalmaznak, mint az erőforrás helyének URL-címe, a létrehozás dátuma, a frissített dátum, a méret és a feltöltés állapota.
Tartalom metaadatainak lekérése:
Válassza az Új lehetőséget.
Az Új létrehozása ablakban válassza a HTTP-kérelem lehetőséget.
Adja meg a kérelem nevét , például GET Adatfeltöltési metaadatokat.
Válassza a GET HTTP metódust.
Adja meg a
resource Location URL
másolt adatokat a GeoJSON-adatok feltöltési állapotának ellenőrzése című témakörben. A kérésnek a következő URL-címhez hasonlóan kell kinéznie (cserélje le az elemet{Azure-Maps-Primary-Subscription-key}
az elsődleges előfizetési kulcsra):https://us.atlas.microsoft.com/mapData/metadata/{udid}?api-version=2.0&subscription-key={Your-Azure-Maps-Subscription-key}
A válaszablakban válassza a Törzs lapot. A metaadatoknak a következő JSON-töredékhez kell hasonlítanak:
{ "udid": "{udid}", "location": "https://us.atlas.microsoft.com/mapData/6ebf1ae1-2a66-760b-e28c-b9381fcff335?api-version=2.0", "created": "5/18/2021 8:10:32 PM +00:00", "updated": "5/18/2021 8:10:37 PM +00:00", "sizeInBytes": 946901, "uploadStatus": "Completed" }
Munkafolyamatok létrehozása az Azure Logic Appsben
Ezután létrehozunk két logikai alkalmazásvégpontot , amelyek e-mailes értesítést aktiválnak.
A logikai alkalmazások létrehozása:
Jelentkezzen be az Azure Portalra.
A Azure Portal bal felső sarkában válassza az Erőforrás létrehozása lehetőséget.
A Keresés a Marketplace-en mezőbe írja be a Logikai alkalmazás kifejezést.
Az eredmények közül válassza a Logikai alkalmazás lehetőséget. Ezután kattintson a Létrehozás elemre.
A Logikai alkalmazás lapon adja meg a következő értékeket:
- A logikai alkalmazáshoz használni kívánt előfizetés .
- A logikai alkalmazás erőforráscsoportjának neve. Választhatja az Új létrehozása vagy a Meglévő erőforráscsoport használata lehetőséget.
- A logikai alkalmazás logikai alkalmazásának neve . Ebben az esetben használja a nevet
Equipment-Enter
.
Ebben az oktatóanyagban az összes többi értéket meg kell őrizni az alapértelmezett beállításokban.
Válassza a Felülvizsgálat és létrehozás lehetőséget. Tekintse át a beállításokat, és válassza a Létrehozás lehetőséget.
Ha az üzembe helyezés sikeresen befejeződött, válassza az Erőforrás megnyitása lehetőséget.
A Logic App Designerben görgessen le a Start with a common trigger (Indítás közös triggerrel ) szakaszhoz. Válassza a HTTP-kérés fogadása lehetőséget.
A Logic App Designer jobb felső sarkában válassza a Mentés lehetőséget. A HTTP POST URL-cím automatikusan létrejön. Mentse az URL-címet. A következő szakaszban szüksége lesz rá egy eseményvégpont létrehozásához.
Válassza az + Új lépés lehetőséget.
A keresőmezőbe gépelje be a
outlook.com email
kifejezést. A Műveletek listában görgessen le, és válassza az E-mail küldése (V2) lehetőséget.Jelentkezzen be az Outlook-fiókjába. Győződjön meg arról, hogy az Igen lehetőséget választja, hogy a logikai alkalmazás hozzáférhessen a fiókhoz. Töltse ki az e-mail küldéséhez szükséges mezőket.
Tipp
Az e-mail-értesítésekben lekérheti a GeoJSON-válaszadatokat, például
geometryId
a vagydeviceId
a-t. Konfigurálhatja a Logic Appst az Event Grid által küldött adatok olvasására. További információ arról, hogyan konfigurálhatja a Logic Appst az eseményadatok e-mail-értesítésekbe való felhasználására és továbbítására: Oktatóanyag: E-mail-értesítések küldése Azure IoT Hub eseményekről az Event Grid és a Logic Apps használatával.A Logic App Designer bal felső sarkában válassza a Mentés lehetőséget.
Ha létre szeretne hozni egy második logikai alkalmazást, amely értesíti a kezelőt, amikor a berendezés kilép az építési területről, ismételje meg ugyanezt a folyamatot. Nevezze el a logikai alkalmazást
Equipment-Exit
.
Azure Maps esemény-előfizetések létrehozása
Azure Maps három eseménytípust támogat. Ebben az oktatóanyagban az alábbi két eseményhez hozunk létre előfizetéseket:
- Geofence adja meg az eseményeket
- Geofence kilépési események
Geokerítési kilépés létrehozása és esemény-előfizetés megadása:
A Azure Maps fiókjában válassza az Előfizetések lehetőséget.
Válassza ki az előfizetés nevét.
A beállítások menüben válassza az események lehetőséget.
Az események lapon válassza az + Esemény-előfizetés lehetőséget.
Az Esemény-előfizetés létrehozása lapon adja meg a következő értékeket:
- Az esemény-előfizetés neve .
- Az eseménysémánakEvent Grid-sémának kell lennie.
- Az esemény-előfizetés rendszertémakörének neve , amely ebben az esetben a
Contoso-Construction
következő: . - A Szűrés eseménytípusokra lehetőségnél válassza
Geofence Entered
ki az eseménytípust. - A Végpont típusa mezőben válassza a lehetőséget
Web Hook
. - Végpont esetén másolja ki a logikai alkalmazás HTTP POST URL-címét, és adja meg az előző szakaszban létrehozott végpontot. Ha elfelejtette menteni, egyszerűen visszaléphet a Logic App Designerbe, és átmásolhatja a HTTP-eseményindító lépésből.
Válassza a Létrehozás lehetőséget.
Ismételje meg ugyanezt a folyamatot a geokerítés kilépési eseményéhez. Ügyeljen arra, hogy az esemény típusa legyen kiválasztva
Geofence Exited
.
A Spatial Geofence Get API használata
Ezután a Spatial Geofence Get API-val e-mailes értesítéseket küldünk az operations managernek, amikor egy berendezés belép vagy kilép a geokerítésből.
Minden berendezéshez tartozik egy deviceId
. Ebben az oktatóanyagban egyetlen berendezést követ nyomon, amelynek egyedi azonosítója device_1
.
Az alábbi ábrán a berendezés öt helye látható az idő múlásával, a start helyétől kezdve, amely valahol a geokerítéseken kívül esik. Ebben az oktatóanyagban a start hely nincs meghatározva, mert nem fogja lekérdezni az eszközt az adott helyen.
Amikor a Spatial Geofence Get API-t olyan berendezési hellyel kérdezi le, amely a kezdeti geokerítési bejegyzést vagy kilépést jelzi, az Event Grid meghívja a megfelelő logikai alkalmazásvégpontot, hogy e-mail-értesítést küldjön az operations managernek.
Az alábbi szakaszok mindegyike API-kéréseket küld a berendezés öt különböző helykoordináta-koordinátájának használatával.
Berendezés helye 1 (47.638237,-122.132483)
A Postman alkalmazásban válassza az Új lehetőséget.
Az Új létrehozása ablakban válassza a HTTP-kérelem lehetőséget.
Adja meg a kérelem nevét , például 1. hely.
Válassza a GET HTTP metódust.
Adja meg a következő URL-címet. A kérésnek a következő URL-címhez hasonlóan kell kinéznie (cserélje le
{Azure-Maps-Primary-Subscription-key}
az elemet az elsődleges előfizetési kulcsra, és{udid}
audid
Geofencing GeoJSON-adatok feltöltése szakaszban mentettre).https://atlas.microsoft.com/spatial/geofence/json?subscription-key={Your-Azure-Maps-Subscription-key}&api-version=1.0&deviceId=device_01&udid={udid}&lat=47.638237&lon=-122.1324831&searchBuffer=5&isAsync=True&mode=EnterAndExit
Kattintson a Küldés gombra.
A válasznak a következő GeoJSON-töredékre kell hasonlítania:
{ "geometries": [ { "deviceId": "device_1", "udId": "64f71aa5-bbee-942d-e351-651a6679a7da", "geometryId": "1", "distance": -999.0, "nearestLat": 47.638291, "nearestLon": -122.132483 }, { "deviceId": "device_1", "udId": "64f71aa5-bbee-942d-e351-651a6679a7da", "geometryId": "2", "distance": 999.0, "nearestLat": 47.638053, "nearestLon": -122.13295 } ], "expiredGeofenceGeometryId": [], "invalidPeriodGeofenceGeometryId": [], "isEventPublished": true }
Az előző GeoJSON-válaszban a fő hely geokerítésétől való negatív távolság azt jelenti, hogy a berendezés a geokerítésen belül van. Az alwebhely földrajzi helyétől való pozitív távolság azt jelenti, hogy a berendezés kívül esik az alwebhely geofencen. Mivel ez az első alkalom, hogy az eszköz a fő hely geokerítésén belül található, a isEventPublished
paraméter true
értéke . Az operations manager e-mailben értesítést kap arról, hogy a berendezés belépett a geokerítésbe.
2. hely (47.63800,-122.132531)
A Postman alkalmazásban válassza az Új lehetőséget.
Az Új létrehozása ablakban válassza a HTTP-kérelem lehetőséget.
Adja meg a kérelem nevét, például a 2. helyet.
Válassza a GET HTTP metódust.
Adja meg a következő URL-címet. A kérésnek a következő URL-címhez hasonlóan kell kinéznie (cserélje le
{Azure-Maps-Primary-Subscription-key}
az elemet az elsődleges előfizetési kulcsra, és{udid}
audid
Geofencing GeoJSON-adatok feltöltése szakaszban mentettre).https://atlas.microsoft.com/spatial/geofence/json?subscription-key={Your-Azure-Maps-Subscription-key}&api-version=1.0&deviceId=device_01&udId={udId}&lat=47.63800&lon=-122.132531&searchBuffer=5&isAsync=True&mode=EnterAndExit
Kattintson a Küldés gombra.
A válasznak a következő GeoJSON-töredékre kell hasonlítania:
{ "geometries": [ { "deviceId": "device_01", "udId": "64f71aa5-bbee-942d-e351-651a6679a7da", "geometryId": "1", "distance": -999.0, "nearestLat": 47.637997, "nearestLon": -122.132399 }, { "deviceId": "device_01", "udId": "64f71aa5-bbee-942d-e351-651a6679a7da", "geometryId": "2", "distance": 999.0, "nearestLat": 47.63789, "nearestLon": -122.132809 } ], "expiredGeofenceGeometryId": [], "invalidPeriodGeofenceGeometryId": [], "isEventPublished": false }
Az előző GeoJSON-válaszban a berendezés a fő hely geokerítésében maradt, és nem lépett be az alwebhely geofence területére. Ennek eredményeképpen a paraméter false
értéke isEventPublished
, és az operations manager nem kap e-mail-értesítéseket.
3. hely (47.63810783315048,-122.13336020708084)
A Postman alkalmazásban válassza az Új lehetőséget.
Az Új létrehozása ablakban válassza a HTTP-kérelem lehetőséget.
Adja meg a kérelem nevét , például a 3. helyet.
Válassza a GET HTTP metódust.
Adja meg a következő URL-címet. A kérésnek a következő URL-címhez hasonlóan kell kinéznie (cserélje le
{Azure-Maps-Primary-Subscription-key}
az elemet az elsődleges előfizetési kulcsra, és{udid}
audid
Geofencing GeoJSON-adatok feltöltése szakaszban mentettre).https://atlas.microsoft.com/spatial/geofence/json?subscription-key={Your-Azure-Maps-Subscription-key}&api-version=1.0&deviceId=device_01&udid={udid}&lat=47.63810783315048&lon=-122.13336020708084&searchBuffer=5&isAsync=True&mode=EnterAndExit
Kattintson a Küldés gombra.
A válasznak a következő GeoJSON-töredékre kell hasonlítania:
{ "geometries": [ { "deviceId": "device_01", "udId": "64f71aa5-bbee-942d-e351-651a6679a7da", "geometryId": "1", "distance": -999.0, "nearestLat": 47.638294, "nearestLon": -122.133359 }, { "deviceId": "device_01", "udId": "64f71aa5-bbee-942d-e351-651a6679a7da", "geometryId": "2", "distance": -999.0, "nearestLat": 47.638161, "nearestLon": -122.133549 } ], "expiredGeofenceGeometryId": [], "invalidPeriodGeofenceGeometryId": [], "isEventPublished": true }
Az előző GeoJSON-válaszban a berendezés a fő hely geokerítésében maradt, de belépett az alwebhely geofence területére. Ennek eredményeképpen a isEventPublished
paraméter true
értéke . Az operations manager e-mail-értesítést kap arról, hogy a berendezés geokerítést adott meg.
Megjegyzés
Ha a berendezés munkaidő után átkerült volna az alwebhelyre, nem lett volna közzétéve esemény, és az operations manager nem kapna értesítést.
4. hely (47.637988,-122.1338344)
A Postman alkalmazásban válassza az Új lehetőséget.
Az Új létrehozása ablakban válassza a HTTP-kérelem lehetőséget.
Adja meg a kérelem nevét , például a 4. helyet.
Válassza a GET HTTP metódust.
Adja meg a következő URL-címet. A kérésnek a következő URL-címhez hasonlóan kell kinéznie (cserélje le
{Azure-Maps-Primary-Subscription-key}
az elemet az elsődleges előfizetési kulcsra, és{udid}
audid
Geofencing GeoJSON-adatok feltöltése szakaszban mentettre).https://atlas.microsoft.com/spatial/geofence/json?subscription-key={Your-Azure-Maps-Subscription-key}&api-version=1.0&deviceId=device_01&udid={udid}&lat=47.637988&userTime=2023-01-16&lon=-122.1338344&searchBuffer=5&isAsync=True&mode=EnterAndExit
Kattintson a Küldés gombra.
A válasznak a következő GeoJSON-töredéknek kell lennie:
{ "geometries": [ { "deviceId": "device_01", "udId": "64f71aa5-bbee-942d-e351-651a6679a7da", "geometryId": "1", "distance": -999.0, "nearestLat": 47.637985, "nearestLon": -122.133907 } ], "expiredGeofenceGeometryId": [ "2" ], "invalidPeriodGeofenceGeometryId": [], "isEventPublished": false }
Az előző GeoJSON-válaszban a berendezés a fő hely geofence-jében maradt, de kilépett az alwebhely geofence-ből. Figyelje meg azonban, hogy az userTime
érték a expiredTime
geofenciaadatokban meghatározott érték után van. Ennek eredményeképpen a isEventPublished
paraméter false
értéke , és az operations manager nem kap e-mail-értesítést.
5. hely (47.63799, -122.134505)
A Postman alkalmazásban válassza az Új lehetőséget.
Az Új létrehozása ablakban válassza a HTTP-kérés lehetőséget.
Adja meg a kérelem nevét , például az 5. helyet.
Válassza a GET HTTP metódust.
Adja meg a következő URL-címet. A kérésnek a következő URL-címre kell hasonlítania (cserélje le
{Azure-Maps-Primary-Subscription-key}
az elsődleges előfizetési kulcsra, és{udid}
audid
Geofencing GeoJSON-adatok feltöltése szakaszban mentettre).https://atlas.microsoft.com/spatial/geofence/json?subscription-key={Your-Azure-Maps-Subscription-key}&api-version=1.0&deviceId=device_01&udid={udid}&lat=47.63799&lon=-122.134505&searchBuffer=5&isAsync=True&mode=EnterAndExit
Kattintson a Küldés gombra.
A válasznak a következő GeoJSON-töredéknek kell lennie:
{ "geometries": [ { "deviceId": "device_01", "udId": "64f71aa5-bbee-942d-e351-651a6679a7da", "geometryId": "1", "distance": -999.0, "nearestLat": 47.637985, "nearestLon": -122.133907 }, { "deviceId": "device_01", "udId": "64f71aa5-bbee-942d-e351-651a6679a7da", "geometryId": "2", "distance": 999.0, "nearestLat": 47.637945, "nearestLon": -122.133683 } ], "expiredGeofenceGeometryId": [], "invalidPeriodGeofenceGeometryId": [], "isEventPublished": true }
Az előző GeoJSON-válaszban a berendezés kilépett a fő hely geofence-ből. Ennek eredményeképpen a isEventPublished
paraméter értéke true
, és az operations manager e-mailben értesítést kap arról, hogy a berendezés kilépett a georedundáns rendszerből.
E-mail-értesítéseket is küldhet az Event Grid és a Logic Apps használatával, és ellenőrizheti a támogatott eseménykezelőket az Event Gridben a Azure Maps használatával.
Az erőforrások eltávolítása
Nincsenek olyan erőforrások, amelyek karbantartást igényelnek.