Kurz: Nastavení geografické zóny pomocí Azure Mapy
Tento kurz vás provede základy vytváření a používání služeb Azure Mapy geofence.
Zvažte následující scénář:
Vedoucí stavebního areálu musí sledovat vybavení, jakmile vstoupí a opustí obvody stavební oblasti. Při každém ukončení nebo vstupu kusu zařízení do těchto hraničních zařízení se do Operations Manageru odešle e-mailové oznámení.
Azure Mapy poskytuje služby, které podporují sledování zařízení, které vstupuje do stavební oblasti a odchází z něj. V tomto kurzu:
- Nahrajte data Geofencing GeoJSON, která definují oblasti stavebního areálu, které chcete monitorovat. Geofence nahrajete jako souřadnice mnohoúhelníku do účtu úložiště Azure a pak pomocí služby registru dat zaregistrujete tato data ve vašem účtu Azure Mapy.
- Nastavte dvě aplikace logiky, které při aktivaci odesílají e-mailová oznámení správci provozu budovy, když zařízení vstoupí do oblasti geografické zóny a ukončí ji.
- K přihlášení k odběru azure Event Gridu můžete zadat a ukončit události pro vaši geografickou fenci Azure Mapy. Nastavíte dvě odběry událostí webhooku, které volají koncové body HTTP definované ve dvou aplikacích logiky. Aplikace logiky pak posílají příslušná e-mailová oznámení o zařízení, která přesahují nebo zacházejí do geografické zóny.
- Pomocí funkce Search Geofence Get API můžete dostávat oznámení, když kus vybavení opustí a vstoupí do oblastí geografické zóny.
Požadavky
- Účet Azure Mapy
- Klíč předplatného
- Účet úložiště Azure
Tento kurz používá aplikaci Postman , ale můžete použít jiné vývojové prostředí rozhraní API.
Důležité
V příkladech adresy URL nahraďte {Your-Azure-Maps-Subscription-key}
klíčem předplatného Azure Mapy.
Nahrání geofencingových dat GeoJSON
Tento kurz ukazuje, jak nahrát geofencing GeoJSON data, která obsahují FeatureCollection
. Obsahuje FeatureCollection
dvě geofence, které definují mnohoúhelníkové plochy v rámci stavebního areálu. První geografickáfence nemá žádné časové vypršení platnosti ani omezení. Druhá se dá dotazovat pouze během pracovní doby (1.00:00–17:00 v časovém pásmu Tichomoří) a po 1. lednu 2022 už nebude platná. Další informace o formátu GeoJSON naleznete v tématu Geofencing GeoJSON data.
Pomocí následujících dat geografické zóny vytvořte soubor JSON geografické zóny. Tento soubor nahrajete do svého účtu úložiště Azure.
{
"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
}
]
}
}
}
]
}
Postupujte podle kroků popsaných v článku Vytvoření registru dat, který nahraje soubor JSON geografické zóny do účtu úložiště Azure a zaregistrujete ho ve svém účtu Azure Mapy.
Důležité
Nezapomeňte si poznamenat jedinečnou hodnotu identifikátoru (udid
) a budete ji potřebovat. Způsob udid
, jakým odkazujete na geografickoufenci, kterou jste nahráli do účtu úložiště Azure, ze zdrojového kódu a požadavků HTTP.
Vytváření pracovních postupů v Azure Logic Apps
Dále vytvořte dva koncové body aplikace logiky, které aktivují e-mailové oznámení.
Vytvoření aplikací logiky:
Přihlaste se k portálu Azure.
V levém horním rohu webu Azure Portal vyberte Vytvořit prostředek.
Do pole Search a marketplace zadejte Aplikaci logiky.
Ve výsledcích vyberte Aplikaci logiky. Potom vyberte Vytvořit.
Na stránce Aplikace logiky zadejte následující hodnoty:
- Předplatné, které chcete pro tuto aplikaci logiky použít.
- Název skupiny prostředků pro tuto aplikaci logiky Můžete zvolit možnost Vytvořit novou nebo Použít existující skupinu prostředků.
- Název aplikace logiky vaší aplikace logiky V tomto případě použijte
Equipment-Enter
jako název. - Jako typ plánu vyberte Consumption. Další informace najdete v tématu Fakturace a cenové modely v dokumentaci k aplikaci logiky.
Pro účely tohoto kurzu ponechte všechny ostatní hodnoty ve výchozím nastavení.
Až budete hotovi, vyberte Zkontrolovat a vytvořit. Jakmile Azure ověří informace o prostředku aplikace logiky, vyberte Vytvořit.
Po úspěšném dokončení nasazení vyberte Přejít k prostředku.
V nabídce vlevo vyberte Návrhář aplikace logiky v části Vývojové nástroje a posuňte se dolů k části Start se společným triggerem . Vyberte Při přijetí požadavku HTTP.
V pravém horním rohu Návrháře aplikace logiky vyberte Uložit. Adresa URL HTTP POST se vygeneruje automaticky. Uložte adresu URL. K vytvoření koncového bodu události ho budete potřebovat v další části.
Vyberte + Nový krok.
Do vyhledávacího pole zadejte
outlook.com email
. V seznamu Akce se posuňte dolů a vyberte Odeslat e-mail (V2).Přihlaste se ke svému účtu Outlooku. Pokud chcete aplikaci logiky povolit přístup k účtu, nezapomeňte vybrat ano. Vyplňte pole pro odeslání e-mailu.
Tip
V e-mailových oznámeních můžete načíst data odpovědí GeoJSON, například
geometryId
nebodeviceId
. Logic Apps můžete nakonfigurovat tak, aby četla data odesílaná službou Event Grid. Informace o tom, jak nakonfigurovat Logic Apps tak, aby spotřebovávat a předávat data událostí do e-mailových oznámení, najdete v tématu Kurz: Odesílání e-mailových oznámení o událostech azure IoT Hubu pomocí Event Gridu a Logic Apps.V levém horním rohu Návrháře aplikace logiky vyberte Uložit.
Pokud chcete vytvořit druhou aplikaci logiky, která manažera upozorní, když zařízení opustí stavební lokalitu, opakujte stejný proces. Pojmenujte aplikaci
Equipment-Exit
logiky .
Vytvoření odběrů událostí azure Mapy
Azure Mapy podporuje tři typy událostí. V tomto kurzu se dozvíte, jak vytvořit předplatná následujících dvou událostí:
- Geofence – zadávání událostí
- Události ukončení geografické zóny
Vytvořte ukončení geografické zóny a zadejte odběry událostí:
Ve svém účtu Azure Mapy vyberte Předplatná.
Vyberte název předplatného.
V nabídce nastavení vyberte události.
Na stránce události vyberte + Odběr události.
Na stránce Vytvořit odběr události zadejte následující hodnoty:
- Název odběru události.
- Schéma událostí by mělo být schéma Event Gridu.
- Název systémového tématu pro toto odběr události, což je
Contoso-Construction
v tomto případě . - Pro filtrování podle typů událostí zvolte
Geofence Entered
jako typ události. - Jako typ koncového bodu zvolte
Web Hook
. - V části Koncový bod zkopírujte adresu URL HTTP POST pro aplikaci logiky a zadejte koncový bod, který jste vytvořili v předchozí části. Pokud jste ho zapomněli uložit, můžete se vrátit zpět do Návrháře aplikace logiky a zkopírovat ho z kroku triggeru HTTP.
Vyberte Vytvořit.
Stejný postup opakujte pro událost ukončení geografické zóny. Nezapomeňte zvolit
Geofence Exited
jako typ události.
Použití rozhraní API Pro získání prostorové geografické zóny
Dále použijeme rozhraní API Pro získání prostorové geografické zóny k odesílání e-mailových oznámení operations manageru, když část zařízení vstoupí nebo ukončí geofence.
Každý kus vybavení má deviceId
. V tomto kurzu sledujete jeden kus vybavení s jedinečným ID device_1
.
Následující diagram znázorňuje pět míst zařízení v průběhu času, počínaje počátečním umístěním, které je někde mimo geofence. Pro účely tohoto kurzu není umístění Start definováno, protože se na zařízení v tomto umístění dotazujete.
Při dotazování rozhraní SPATIAL Geofence Get API s umístěním vybavení, které indikuje počáteční vstup nebo ukončení geografické zóny, služba Event Grid zavolá příslušný koncový bod aplikace logiky, který odešle e-mailové oznámení operations manageru.
Každá z následujících částí provádí požadavky rozhraní API pomocí pěti různých souřadnic umístění zařízení.
Umístění zařízení 1 (47.638237,-122.132483)
V aplikaci Postman vyberte Nový.
V okně Vytvořit nový vyberte požadavek HTTP.
Zadejte název žádosti, například umístění 1.
Vyberte metodu GET HTTP.
Zadejte následující adresu URL. Požadavek by měl vypadat jako následující adresa URL (nahraďte
{udid}
udid
hodnotou, kterou jste uložili v části Nahrát data Geofencing GeoJSON).https://{geography}.atlas.microsoft.com/spatial/geofence/json?subscription-key={Your-Azure-Maps-Subscription-key}&api-version=2022-08-01&deviceId=device_01&udid={udid}&lat=47.638237&lon=-122.1324831&searchBuffer=5&isAsync=True&mode=EnterAndExit
Vyberte Odeslat.
Odpověď by měla vypadat jako následující fragment GeoJSON:
{ "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 }
V předchozí odpovědi GeoJSON negativní vzdálenost od geofence hlavní lokality znamená, že zařízení je uvnitř geofence. Kladná vzdálenost od geografické zóny podřízených lokalit znamená, že zařízení je mimo geografickoufenci podřízeného pracoviště. Vzhledem k tomu, že se toto zařízení poprvé nachází uvnitř geografické zóny hlavní lokality, isEventPublished
je parametr nastaven na true
. Operations Manager obdrží e-mailové oznámení o tom, že zařízení zadalo geofence.
Umístění 2 (47,63800,-122.132531)
V aplikaci Postman vyberte Nový.
V okně Vytvořit nový vyberte požadavek HTTP.
Zadejte název žádosti, například umístění 2.
Vyberte metodu GET HTTP.
Zadejte následující adresu URL. Požadavek by měl vypadat jako následující adresa URL (nahraďte
{udid}
udid
hodnotou, kterou jste uložili v části Nahrát data Geofencing GeoJSON).https://{geography}.atlas.microsoft.com/spatial/geofence/json?subscription-key={Your-Azure-Maps-Subscription-key}&api-version=2022-08-01&deviceId=device_01&udId={udId}&lat=47.63800&lon=-122.132531&searchBuffer=5&isAsync=True&mode=EnterAndExit
Vyberte Odeslat.
Odpověď by měla vypadat jako následující fragment GeoJSON:
{ "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 }
V předchozí reakci GeoJSON zůstalo zařízení v hlavní geografické zóny lokality a nezadávalo se do geografické zóny podřízeného webu. V důsledku toho isEventPublished
je parametr nastavený na false
hodnotu a Operations Manager neobdrží žádná e-mailová oznámení.
Umístění 3 (47.63810783315048,-122.13336020708084)
V aplikaci Postman vyberte Nový.
V okně Vytvořit nový vyberte požadavek HTTP.
Zadejte název žádosti, například umístění 3.
Vyberte metodu GET HTTP.
Zadejte následující adresu URL. Požadavek by měl vypadat jako následující adresa URL (nahraďte
{udid}
udid
hodnotou, kterou jste uložili v části Nahrát data Geofencing GeoJSON).https://{geography}.atlas.microsoft.com/spatial/geofence/json?subscription-key={Your-Azure-Maps-Subscription-key}&api-version=2022-08-01&deviceId=device_01&udid={udid}&lat=47.63810783315048&lon=-122.13336020708084&searchBuffer=5&isAsync=True&mode=EnterAndExit
Vyberte Odeslat.
Odpověď by měla vypadat jako následující fragment GeoJSON:
{ "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 }
V předchozí odpovědi GeoJSON zůstala zařízení v hlavní geografické zóny lokality, ale vstoupila do podřízené geografické zóny lokality. V důsledku toho isEventPublished
je parametr nastaven na true
. Operations Manager obdrží e-mailové oznámení o tom, že zařízení vstoupilo do geografické zóny.
Poznámka:
Pokud by se zařízení po pracovní době přesunulo do podřízeného webu, nezveřejní se žádná událost a provozní manažer nebude dostávat žádná oznámení.
Umístění 4 (47,637988,-122.1338344)
V aplikaci Postman vyberte Nový.
V okně Vytvořit nový vyberte požadavek HTTP.
Zadejte název žádosti, například umístění 4.
Vyberte metodu GET HTTP.
Zadejte následující adresu URL. Požadavek by měl vypadat jako následující adresa URL (nahraďte
{udid}
udid
hodnotou, kterou jste uložili v části Nahrát data Geofencing GeoJSON).https://{geography}.atlas.microsoft.com/spatial/geofence/json?subscription-key={Your-Azure-Maps-Subscription-key}&api-version=2022-08-01&deviceId=device_01&udid={udid}&lat=47.637988&userTime=2023-01-16&lon=-122.1338344&searchBuffer=5&isAsync=True&mode=EnterAndExit
Vyberte Odeslat.
Odpověď by měla vypadat jako následující fragment GeoJSON:
{ "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 }
V předchozí reakci GeoJSON zůstala zařízení v hlavní geografické zóny lokality, ale ukončila geofenci podřízeného webu. Všimněte si však, že userTime
hodnota je za hodnotou definovanou expiredTime
v datech geofence. V důsledku toho isEventPublished
je parametr nastavený na false
hodnotu a Operations Manager neobdrží e-mailové oznámení.
Umístění 5 (47.63799, -122.134505)
V aplikaci Postman vyberte Nový.
V okně Vytvořit nový vyberte požadavek HTTP.
Zadejte název žádosti, například umístění 5.
Vyberte metodu GET HTTP.
Zadejte následující adresu URL. Požadavek by měl vypadat jako následující adresa URL (nahraďte
{udid}
udid
hodnotou, kterou jste uložili v části Nahrát data Geofencing GeoJSON).https://{geography}.atlas.microsoft.com/spatial/geofence/json?subscription-key={Your-Azure-Maps-Subscription-key}&api-version=2022-08-01&deviceId=device_01&udid={udid}&lat=47.63799&lon=-122.134505&searchBuffer=5&isAsync=True&mode=EnterAndExit
Vyberte Odeslat.
Odpověď by měla vypadat jako následující fragment GeoJSON:
{ "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 }
V předchozí reakci GeoJSON zařízení ukončilo hlavní geofenci lokality. V důsledku toho isEventPublished
je parametr nastaven na true
hodnotu a Operations Manager obdrží e-mailové oznámení, které indikuje, že zařízení ukončilo geografickoufenci.
Pomocí Event Gridu a Logic Apps můžete také odesílat e-mailová oznámení. Další informace najdete v tématu Obslužné rutiny událostí ve službě Azure Event Grid.
Vyčištění prostředků
Nejsou k dispozici žádné prostředky, které by vyžadovaly vyčištění.