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

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:

  1. Přihlaste se k portálu Azure.

  2. V levém horním rohu webu Azure Portal vyberte Vytvořit prostředek.

  3. Do pole Search a marketplace zadejte Aplikaci logiky.

  4. Ve výsledcích vyberte Aplikaci logiky. Potom vyberte Vytvořit.

  5. 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í.

    Screenshot of create a logic app.

  6. Až budete hotovi, vyberte Zkontrolovat a vytvořit. Jakmile Azure ověří informace o prostředku aplikace logiky, vyberte Vytvořit.

  7. Po úspěšném dokončení nasazení vyberte Přejít k prostředku.

  8. 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.

    Screenshot of create a logic app HTTP trigger.

  9. 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.

    Screenshot of Logic App HTTP Request URL and JSON.

  10. Vyberte + Nový krok.

  11. Do vyhledávacího pole zadejte outlook.com email. V seznamu Akce se posuňte dolů a vyberte Odeslat e-mail (V2).

    Screenshot of create a logic app designer.

  12. 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.

    Screenshot of create a logic app send email step.

    Tip

    V e-mailových oznámeních můžete načíst data odpovědí GeoJSON, například geometryId nebo deviceId. 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.

  13. V levém horním rohu Návrháře aplikace logiky vyberte Uložit.

  14. Pokud chcete vytvořit druhou aplikaci logiky, která manažera upozorní, když zařízení opustí stavební lokalitu, opakujte stejný proces. Pojmenujte aplikaci Equipment-Exitlogiky .

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í:

  1. Ve svém účtu Azure Mapy vyberte Předplatná.

  2. Vyberte název předplatného.

  3. V nabídce nastavení vyberte události.

    Screenshot of go to Azure Maps account events.

  4. Na stránce události vyberte + Odběr události.

    Screenshot of create an Azure Maps events subscription.

  5. 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-Constructionv 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.

    Screenshot of Azure Maps events subscription details.

  6. Vyberte Vytvořit.

  7. 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í.

Diagram of geofence map in Azure Maps

Umístění zařízení 1 (47.638237,-122.132483)

  1. V aplikaci Postman vyberte Nový.

  2. V okně Vytvořit nový vyberte požadavek HTTP.

  3. Zadejte název žádosti, například umístění 1.

  4. Vyberte metodu GET HTTP.

  5. 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
    

    Poznámka:

    Nahraďte {geography} svým geografickým oborem. Další informace najdete v geografickém rozsahu služby Azure Mapy a rozhraní API Spatial Geofence Get.

  6. Vyberte Odeslat.

  7. 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)

  1. V aplikaci Postman vyberte Nový.

  2. V okně Vytvořit nový vyberte požadavek HTTP.

  3. Zadejte název žádosti, například umístění 2.

  4. Vyberte metodu GET HTTP.

  5. 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
    
  6. Vyberte Odeslat.

  7. 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 falsehodnotu a Operations Manager neobdrží žádná e-mailová oznámení.

Umístění 3 (47.63810783315048,-122.13336020708084)

  1. V aplikaci Postman vyberte Nový.

  2. V okně Vytvořit nový vyberte požadavek HTTP.

  3. Zadejte název žádosti, například umístění 3.

  4. Vyberte metodu GET HTTP.

  5. 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
    
  6. Vyberte Odeslat.

  7. 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)

  1. V aplikaci Postman vyberte Nový.

  2. V okně Vytvořit nový vyberte požadavek HTTP.

  3. Zadejte název žádosti, například umístění 4.

  4. Vyberte metodu GET HTTP.

  5. 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
    
  6. Vyberte Odeslat.

  7. 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 falsehodnotu a Operations Manager neobdrží e-mailové oznámení.

Umístění 5 (47.63799, -122.134505)

  1. V aplikaci Postman vyberte Nový.

  2. V okně Vytvořit nový vyberte požadavek HTTP.

  3. Zadejte název žádosti, například umístění 5.

  4. Vyberte metodu GET HTTP.

  5. 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
    
  6. Vyberte Odeslat.

  7. 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 truehodnotu 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í.

Další kroky