Руководство по Настройка геозоны с использованием Azure MapsTutorial: Set up a geofence by using Azure Maps

В этом руководстве показано, как создавать и использовать службы геозон в Azure Maps.This tutorial walks you through the basics of creating and using Azure Maps geofence services. Эти инструкции применимы для следующего сценария:You'll do this in the context of the following scenario:

Руководителю строительного объекта нужно отслеживать оборудование, которое пересекает периметр строительной зоны в любую сторону. Всякий раз, когда оборудование прибывает в зону или покидает ее, руководителю отправляется уведомление по электронной почте.A construction site manager must track equipment as it enters and leaves the perimeters of a construction area. Whenever a piece of equipment exits or enters these perimeters, an email notification is sent to the operations manager.

Azure Maps предоставляет несколько служб, которые помогут отслеживать оборудование, прибывающее в зону строительства и покидающее ее.Azure Maps provides a number of services to support the tracking of equipment entering and exiting the construction area. Изучив это руководство, вы:In this tutorial, you:

  • Отправка данных о геозонах в формате GeoJSON, которые определяют отслеживаемый строительный объект.Upload Geofencing GeoJSON data that defines the construction site areas you want to monitor. Вы примените API отправки данных для передачи геозон в виде координат многоугольника в учетную запись Azure Maps.You'll use the Data Upload API to upload geofences as polygon coordinates to your Azure Maps account.
  • Настройка двух активируемых приложений логики, которые отправляют по электронной почте уведомления руководителю строительного объекта при пересечении оборудованием границ геозоны.Set up two logic apps that, when triggered, send email notifications to the construction site operations manager when equipment enters and exits the geofence area.
  • Применение Сетки событий Azure для подписки на события входа в геозону Azure Maps и выхода из нее.Use Azure Event Grid to subscribe to enter and exit events for your Azure Maps geofence. Вы настроите две подписки для событий веб-перехватчиков, которые вызывают конечные точки HTTP, определенные в этих двух приложениях логики.You set up two webhook event subscriptions that call the HTTP endpoints defined in your two logic apps. После этого Logic Apps будет отправлять уведомления по электронной почте о входе оборудования в геозону и выходе из нее.The logic apps then send the appropriate email notifications of equipment moving beyond or entering the geofence.
  • Применение API поиска по геозоне для получения уведомлений о пересечении оборудованием границ геозоны.Use Search Geofence Get API to receive notifications when a piece of equipment exits and enters the geofence areas.

Предварительные требованияPrerequisites

  1. Создайте учетную запись службы Azure Maps.Create an Azure Maps account.
  2. Получите первичный ключ подписки, который иногда называется первичным ключом или ключом подписки.Obtain a primary subscription key, also known as the primary key or the subscription key.

В этом учебнике используется приложение Postman, но вы можете выбрать другую среду разработки API.This tutorial uses the Postman application, but you can choose a different API development environment.

Отправка данных о геозоне в формате GeoJSONUpload geofencing GeoJSON data

В этом руководстве показано, как отправить данные о геозоне в формате JSON с коллекцией FeatureCollection.For this tutorial, you upload geofencing GeoJSON data that contains a FeatureCollection. FeatureCollection определяет две геозоны в виде многоугольников на строительном объекте.The FeatureCollection contains two geofences that define polygonal areas within the construction site. Для первой геозоны какие-либо ограничения, включая временные, отсутствуют.The first geofence has no time expiration or restrictions. Вторую можно запрашивать только в рабочее время (с 9:00 до 17:00 по тихоокеанскому времени), и с 1 января 2022 г. она не будет недействительна.The second one can only be queried against during business hours (9:00 AM-5:00 PM in the Pacific Time zone), and will no longer be valid after January 1, 2022. См. сведения о формате данных GeoJSON.For more information on the GeoJSON format, see Geofencing GeoJSON data.

Совет

Вы можете в любое время изменить сведения о геозонах.You can update your geofencing data at any time. Дополнительные сведения см. в статье об API отправки данных.For more information, see Data Upload API.

  1. Откройте приложение Postman.Open the Postman app. В верхней части экрана выберите New (Создать).Near the top, select New. В окне Create New (Создание) выберите Collection (Коллекция).In the Create New window, select Collection. Присвойте имя коллекции и нажмите кнопку Create (Создать).Name the collection and select Create.

  2. Чтобы создать запрос, нажмите кнопку Создать еще раз.To create the request, select New again. В окне Create New (Создание) выберите Request (Запрос).In the Create New window, select Request. Введите Имя запроса для запроса.Enter a Request name for the request. Выберите коллекцию, созданную на предыдущем шаге, а затем нажмите кнопку Сохранить.Select the collection you created in the previous step, and then select Save.

  3. Выберите HTTP-метод POST на вкладке построителя и введите следующий URL-адрес, чтобы отправить данные о геозоне в Azure Maps.Select the POST HTTP method in the builder tab, and enter the following URL to upload the geofencing data to Azure Maps. Для этого запроса и других запросов, упомянутых в этой статье, замените {Azure-Maps-Primary-Subscription-key} первичным ключом подписки.For this request, and other requests mentioned in this article, replace {Azure-Maps-Primary-Subscription-key} with your primary subscription key.

    https://atlas.microsoft.com/mapData/upload?subscription-key={Azure-Maps-Primary-Subscription-key}&api-version=1.0&dataFormat=geojson
    

    Параметр geojson в URL-адресе определяет формат отправляемых данных.The geojson parameter in the URL path represents the data format of the data being uploaded.

  4. Выберите вкладку Body (Текст). Выберите формат входных данных raw (Необработанные) и JSON.Select the Body tab. Select raw, and then JSON as the input format. Скопируйте и вставьте следующие данные GeoJSON в текстовую область Body (Текст).Copy and paste the following GeoJSON data into the Body text area:

    {
       "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
                 }
               ]
             }
           }
         }
       ]
    }
    
  5. Нажмите Send (Отправить) и дождитесь обработки запроса.Select Send, and wait for the request to process. После завершения запроса перейдите на вкладку Headers (Заголовки) ответа.When the request completes, go to the Headers tab of the response. Скопируйте значение ключа Расположение, который является status URL.Copy the value of the Location key, which is the status URL.

    https://atlas.microsoft.com/mapData/operations/<operationId>?api-version=1.0
    
  6. Чтобы проверить состояние вызова API, создайте HTTP-запрос GET по status URL.To check the status of the API call, create a GET HTTP request on the status URL. Вам потребуется добавить первичный ключ подписки к URL-адресу для проверки подлинности.You'll need to append your primary subscription key to the URL for authentication. Запрос GET должен быть похож на следующий URL-адрес.The GET request should like the following URL:

    https://atlas.microsoft.com/mapData/<operationId>/status?api-version=1.0&subscription-key={Subscription-key}
    
  7. Когда HTTP-запрос GET завершается успешно, он возвращает resourceLocation.When the GET HTTP request completes successfully, it returns a resourceLocation. resourceLocation содержит уникальное значение udid для переданного содержимого.The resourceLocation contains the unique udid for the uploaded content. Сохраните это значение udid, чтобы вы могли отправлять запросы к API получения геозоны, как показано в последнем разделе этого руководства.Save this udid to query the Get Geofence API in the last section of this tutorial. Также вы можете использовать URL-адрес resourceLocation, чтобы получить метаданные из этого ресурса на следующем шаге.Optionally, you can use the resourceLocation URL to retrieve metadata from this resource in the next step.

    {
        "status": "Succeeded",
        "resourceLocation": "https://atlas.microsoft.com/mapData/metadata/{udid}?api-version=1.0"
    }
    
  8. Чтобы получить метаданные содержимого, создайте HTTP-запрос GET по URL-адресу resourceLocation, который вы получили на шаге 7.To retrieve content metadata, create a GET HTTP request on the resourceLocation URL that was retrieved in step 7. Не забудьте добавить первичный ключ подписки к этому URL-адресу для проверки подлинности.Make sure to append your primary subscription key to the URL for authentication. Запрос GET должен быть похож на следующий URL-адрес.The GET request should like the following URL:

    https://atlas.microsoft.com/mapData/metadata/{udid}?api-version=1.0&subscription-key={Azure-Maps-Primary-Subscription-key}
    
  9. После успешного выполнения HTTP-запроса GET текст ответа будет содержать значение udid, указанное в resourceLocation на шаге 7.When the GET HTTP request completes successfully, the response body will contain the udid specified in the resourceLocation of step 7. Он также будет содержать расположение для доступа к содержимому и его загрузки в будущем, а также другие метаданные, связанные с этим содержимым.It will also contain the location to access and download the content in the future, and other metadata about the content. Пример общего ответа:An example of the overall response is:

    {
        "udid": "{udid}",
        "location": "https://atlas.microsoft.com/mapData/{udid}?api-version=1.0",
        "created": "7/15/2020 6:11:43 PM +00:00",
        "updated": "7/15/2020 6:11:45 PM +00:00",
        "sizeInBytes": 1962,
        "uploadStatus": "Completed"
    }
    

Создание рабочих процессов в Azure Logic AppsCreate workflows in Azure Logic Apps

Далее будет показано, как создать две конечные точки приложения логики, которые будут отправлять уведомления по электронной почте.Next, you create two logic app endpoints that trigger an email notification. Вот как создать первую из них:Here's how to create the first one:

  1. Войдите на портал Azure.Sign in to the Azure portal.

  2. В верхнем левом углу окна портала Azure щелкните Создать ресурс.In the upper-left corner of the Azure portal, select Create a resource.

  3. В поле Поиск по Marketplace введите Приложение логики.In the Search the Marketplace box, type Logic App.

  4. В списке результатов выберите Приложение логики > Создать.From the results, select Logic App > Create.

  5. На странице Приложение логики укажите следующее:On the Logic App page, enter the following values:

    • Подписка для этого приложения логики.The Subscription that you want to use for this logic app.
    • Группа ресурсов для этого приложения логики.The Resource group name for this logic app. Вы можете создать новую или использовать существующую группу ресурсов.You can choose to Create new or Use existing resource group.
    • Имя приложения логики.The Logic App name of your logic app. В этом примере используется имя Equipment-Enter.In this case, use Equipment-Enter as the name.

    Для работы с этим руководством оставьте значения по умолчанию для всех остальных параметров.For the purposes of this tutorial, keep all other values on their default settings.

    Снимок экрана страницы создания приложения логики.

  6. Выберите Review + Create (Просмотреть и создать).Select Review + Create. Проверьте параметры и выберите Создать, чтобы отправить развертывание.Review your settings and select Create to submit the deployment. Когда развертывание успешно завершится, щелкните Перейти к ресурсу.When the deployment successfully completes, select Go to resource. Вы перейдете в Конструктор приложений логики.You're taken to Logic App Designer.

  7. Выберите тип триггера.Select a trigger type. Прокрутите страницу вниз до раздела Начинаем с часто используемого триггера.Scroll down to the Start with a common trigger section. Выберите При получении HTTP-запроса.Select When an HTTP request is received.

    Снимок экрана страницы создания триггера HTTP в приложении логики.

  8. В правом верхнем углу конструктора приложений логики выберите Сохранить.In the upper-right corner of Logic App Designer, select Save. Будет автоматически создан URL-адрес HTTP-запроса POST.The HTTP POST URL is automatically generated. Сохраните URL-адрес —Save the URL. Он понадобится для создания конечной точки события в следующем разделе.You need it in the next section to create an event endpoint.

    Снимок экрана, на котором показан URL-адрес и содержимое в формате JSON для HTTP-запроса приложения логики.

  9. Выберите + Новый шаг.Select + New Step. Теперь необходимо выбрать нужное действие.Now you'll choose an action. Введите outlook.com email в поле поиска.Type outlook.com email in the search box. Прокрутите список Действия вниз и щелкните Отправка электронной почты (V2) .In the Actions list, scroll down and select Send an email (V2).

    Снимок экрана конструктора создания приложения логики.

  10. Войдите в учетную запись Outlook.Sign in to your Outlook account. Выберите Да, чтобы разрешить приложению логики доступ к этой учетной записи.Make sure to select Yes to allow the logic app to access the account. Заполните поля для отправки сообщения электронной почты.Fill in the fields for sending an email.

    Снимок экрана страницы создание приложения логики (шаг отправки электронного письма).

    Совет

    В уведомлениях по электронной почте можно получить данные ответов GeoJSON, например geometryId или deviceId.You can retrieve GeoJSON response data, such as geometryId or deviceId, in your email notifications. В Logic Apps можно настроить чтение данных, отправляемых службой "Сетка событий".You can configure Logic Apps to read the data sent by Event Grid. Сведения о том, как настроить в приложении логики получение данных о событиях и их передачу в уведомлениях по электронной почте, см. в этом учебнике: Отправка уведомлений электронной почты о событиях в Центре Интернета вещей Azure с помощью Сетки событий и Logic Apps.For information on how to configure Logic Apps to consume and pass event data into email notifications, see Tutorial: Send email notifications about Azure IoT Hub events using Event Grid and Logic Apps.

  11. В левом верхнем углу конструктора приложений логики выберите Сохранить.In the upper-left corner of Logic App Designer, select Save.

Чтобы создать второе приложение логики для информирования руководителя о выходе оборудования из строительной зоны, повторите шаги 3–11.To create a second logic app to notify the manager when equipment exits the construction site, repeat steps 3-11. Присвойте этому приложению логики имя Equipment-Exit.Name the logic app Equipment-Exit.

Создание подписок на события Azure MapsCreate Azure Maps events subscriptions

Azure Maps поддерживает три типа событий.Azure Maps supports three event types. В данном случае вам нужно создать две разные подписки на события: для событий входа в геозону и событий выхода из нее.Here, you need to create two different event subscriptions: one for geofence enter events, and one for geofence exit events.

В следующих инструкциях показано, как создать подписку на события поступления оборудования в геозону.The following steps show how to create an event subscription for the geofence enter events. Создать подписку на события выхода оборудования из геозоны можно аналогичным образом.You can subscribe to geofence exit events by repeating the steps in a similar manner.

  1. Перейдите в учетную запись Azure Maps.Go to your Azure Maps account. На панели мониторинга выберите Подписки.In the dashboard, select Subscriptions. Выберите имя нужной подписки и выберите События в меню параметров.Select your subscription name, and select events from the settings menu.

    Снимок экрана с изображением пункта меню для перехода к событиям учетной записи Azure Maps.

  2. Чтобы создать подписку на события, выберите Подписка на события на странице событий.To create an event subscription, select + Event Subscription from the events page.

    Снимок экрана страницы создания подписки на события Azure Maps.

  3. На странице Создание подписки на события укажите следующее:On the Create Event Subscription page, enter the following values:

    • Имя для этой подписки на события.The Name of the event subscription.
    • В поле Схема события выберите Схема Сетки событий.The Event Schema should be Event Grid Schema.
    • Имя системного раздела для этой подписки на события (в данном случае это Contoso-Construction).The System Topic Name for this event subscription, which in this case is Contoso-Construction.
    • В фильтре по типам событий выберите тип события Geofence Entered.For Filter to Event Types, choose Geofence Entered as the event type.
    • В поле Тип конечной точки выберите Web Hook.For Endpoint Type, choose Web Hook.
    • В поле Конечная точка вставьте URL-адрес созданной на предыдущем шаге конечной точки HTTP-запроса POST из приложения логики для событий входа, который вы получили ранее.For Endpoint, copy the HTTP POST URL for the logic app enter endpoint that you created in the previous section. Если вы забыли сохранить это значение, просто переключитесь в окно конструктора приложений логики и скопируйте адрес из шага создания триггера HTTP.If you forgot to save it, you can just go back into Logic App Designer and copy it from the HTTP trigger step.

    Снимок экрана со сведениями о подписке на события Azure Maps

  4. Нажмите кнопку создания.Select Create.

Повторите шаги 1–4 для конечной точки приложения логики для событий входа, созданной, как описано в предыдущем разделе.Repeat steps 1-4 for the logic app exit endpoint that you created in the previous section. Но теперь на шаге 3 выберите тип события Geofence Exited.On step 3, make sure to choose Geofence Exited as the event type.

Использование API определения пространственной геозоныUse Spatial Geofence Get API

Используйте API определения пространственной геозоны для отправки уведомлений по электронной почте руководителю строительного объекта о том, что элемент оборудования входит в границы геозоны или покидает ее.Use Spatial Geofence Get API to send email notifications to the operations manager when a piece of equipment enters or exits the geofences.

Каждый элемент оборудования имеет deviceId.Each piece of equipment has a deviceId. В этом примере будет отслеживаться только один элемент оборудования с уникальным идентификатором device_1.In this tutorial, you're tracking a single piece of equipment, with a unique ID of device_1.

На следующей схеме представлены пять расположений этого элемента оборудования с течением времени, начиная с позиции Начало, которая не входит в пределы наших геозон.The following diagram shows the five locations of the equipment over time, beginning at the Start location, which is somewhere outside the geofences. Для работы с этим руководством мы не отправляем запрос к устройству в расположении Начало, поэтому это расположение не определено.For the purposes of this tutorial, the Start location is undefined, because you won't query the device at that location.

При отправке запроса API определения пространственной геозоны с новым расположением оборудования, которое соответствует первому входу оборудования в зону или выходу из нее, Сетка событий вызовет соответствующую конечную точку приложения логики, чтобы отправить руководителю уведомление строительного объекта по электронной почте.When you query the Spatial Geofence Get API with an equipment location that indicates initial geofence entry or exit, Event Grid calls the appropriate logic app endpoint to send an email notification to the operations manager.

Каждая из следующих секций выполняет запрос к API с разными координатами расположения оборудования.Each of the following sections makes API requests by using the five different location coordinates of the equipment.

Схема карты геозоны в Azure Maps

Расположение оборудования 1 (47,638237,-122,132483)Equipment location 1 (47.638237,-122.132483)

  1. В верхней части приложения Postman выберите элемент Создать.Near the top of the Postman app, select New. В окне Create New (Создание) выберите Request (Запрос).In the Create New window, select Request. Введите Имя запроса для запроса.Enter a Request name for the request. Назначьте его расположением 1.Make it Location 1. Выберите коллекцию, созданную в разделе Отправка данных о геозоне в формате GeoJSON и щелкните Save (Сохранить).Select the collection you created in the Upload Geofencing GeoJSON data section, and then select Save.

  2. Выберите HTTP-метод GET на вкладке конструктора и введите следующий URL-адрес.Select the GET HTTP method in the builder tab, and enter the following URL. Обязательно замените {Azure-Maps-Primary-Subscription-key} значением первичного ключа подписки, а {udid} — значением udid, которое вы сохранили при прохождении раздела Отправка данных о геозоне в формате GeoJSON.Make sure to replace {Azure-Maps-Primary-Subscription-key} with your primary subscription key, and {udid} with the udid you saved in the Upload Geofencing GeoJSON data section.

    https://atlas.microsoft.com/spatial/geofence/json?subscription-key={subscription-key}&api-version=1.0&deviceId=device_01&udid={udid}&lat=47.638237&lon=-122.1324831&searchBuffer=5&isAsync=True&mode=EnterAndExit
    
  3. Нажмите кнопку Отправить.Select Send. В окне ответа появится следующий текст в формате GeoJSON.The following GeoJSON appears in the response window.

    {
      "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
    }
    

В предыдущем ответе GeoJSON отрицательное значение расстояния от основной геозоны объекта означает, что оборудование находится в этой геозоне.In the preceding GeoJSON response, the negative distance from the main site geofence means that the equipment is inside the geofence. Положительное значение расстояния от дочерней геозоны означает, что оборудование находится за пределами этой геозоны.The positive distance from the subsite geofence means that the equipment is outside the subsite geofence. Так как это устройство впервые оказалось внутри главного сайта геозоны, для параметра isEventPublished задано значение true.Because this is the first time this device has been located inside the main site geofence, the isEventPublished parameter is set to true. Руководитель строительного объекта получает уведомление по электронной почте о том, что оборудование вошло в геозону.The operations manager receives an email notification that equipment has entered the geofence.

Расположение 2 (47,63800,-122,132531)Location 2 (47.63800,-122.132531)

  1. В верхней части приложения Postman выберите элемент Создать.Near the top of the Postman app, select New. В окне Create New (Создание) выберите Request (Запрос).In the Create New window, select Request. Введите Имя запроса для запроса.Enter a Request name for the request. Назначьте его расположением 2.Make it Location 2. Выберите коллекцию, созданную в разделе Отправка данных о геозоне в формате GeoJSON и щелкните Save (Сохранить).Select the collection you created in the Upload Geofencing GeoJSON data section, and then select Save.

  2. Выберите HTTP-метод GET на вкладке конструктора и введите следующий URL-адрес.Select the GET HTTP method in the builder tab, and enter the following URL. Обязательно замените {Azure-Maps-Primary-Subscription-key} значением первичного ключа подписки, а {udid} — значением udid, которое вы сохранили при прохождении раздела Отправка данных о геозоне в формате GeoJSON.Make sure to replace {Azure-Maps-Primary-Subscription-key} with your primary subscription key, and {udid} with the udid you saved in the Upload Geofencing GeoJSON data section.

    https://atlas.microsoft.com/spatial/geofence/json?subscription-key={subscription-key}&api-version=1.0&deviceId=device_01&udId={udId}&lat=47.63800&lon=-122.132531&searchBuffer=5&isAsync=True&mode=EnterAndExit
    
  3. Нажмите кнопку Отправить.Select Send. В окне ответа появится следующий текст в формате GeoJSON:The following GeoJSON appears in the response window:

    {
      "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
    }
    

В предыдущем ответе GeoJSON видно, что оборудование оставалось в основной геозоне объекта и не входило в дополнительную геозону.In the preceding GeoJSON response, the equipment has remained in the main site geofence and hasn't entered the subsite geofence. Поэтому параметр isEventPublished получит значение false, и уведомление руководителю строительного объекта не будет отправлено по электронной почте.As a result, the isEventPublished parameter is set to false, and the operations manager doesn't receive any email notifications.

Расположение 3 (47,63810783315048,-122,13336020708084)Location 3 (47.63810783315048,-122.13336020708084)

  1. В верхней части приложения Postman выберите элемент Создать.Near the top of the Postman app, select New. В окне Create New (Создание) выберите Request (Запрос).In the Create New window, select Request. Введите Имя запроса для запроса.Enter a Request name for the request. Назначьте его расположением 3.Make it Location 3. Выберите коллекцию, созданную в разделе Отправка данных о геозоне в формате GeoJSON и щелкните Save (Сохранить).Select the collection you created in the Upload Geofencing GeoJSON data section, and then select Save.

  2. Выберите HTTP-метод GET на вкладке конструктора и введите следующий URL-адрес.Select the GET HTTP method in the builder tab, and enter the following URL. Обязательно замените {Azure-Maps-Primary-Subscription-key} значением первичного ключа подписки, а {udid} — значением udid, которое вы сохранили при прохождении раздела Отправка данных о геозоне в формате GeoJSON.Make sure to replace {Azure-Maps-Primary-Subscription-key} with your primary subscription key, and {udid} with the udid you saved in the Upload Geofencing GeoJSON data section.

      https://atlas.microsoft.com/spatial/geofence/json?subscription-key={subscription-key}&api-version=1.0&deviceId=device_01&udid={udid}&lat=47.63810783315048&lon=-122.13336020708084&searchBuffer=5&isAsync=True&mode=EnterAndExit
    
  3. Нажмите кнопку Отправить.Select Send. В окне ответа появится следующий текст в формате GeoJSON:The following GeoJSON appears in the response window:

    {
      "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
    }
    

В предыдущем ответе GeoJSON видно, что оборудование оставалось в основной геозоне объекта, но вошло в дополнительную геозону.In the preceding GeoJSON response, the equipment has remained in the main site geofence, but has entered the subsite geofence. В результате для параметра isEventPublished будет задано значение true.As a result, the isEventPublished parameter is set to true. Руководитель строительного объекта получает уведомление по электронной почте о том, что оборудование вошло в геозону.The operations manager receives an email notification indicating that the equipment has entered a geofence.

Примечание

Если оборудование переходит в дополнительную геозону в нерабочее время, событие не публикуется и руководитель не получает уведомлений.If the equipment had moved into the subsite after business hours, no event would be published and the operations manager wouldn't receive any notifications.

Расположение 4 (47,637988,-122,1338344)Location 4 (47.637988,-122.1338344)

  1. В верхней части приложения Postman выберите элемент Создать.Near the top of the Postman app, select New. В окне Create New (Создание) выберите Request (Запрос).In the Create New window, select Request. Введите Имя запроса для запроса.Enter a Request name for the request. Назначьте его расположением 4.Make it Location 4. Выберите коллекцию, созданную в разделе Отправка данных о геозоне в формате GeoJSON и щелкните Save (Сохранить).Select the collection you created in the Upload Geofencing GeoJSON data section, and then select Save.

  2. Выберите HTTP-метод GET на вкладке конструктора и введите следующий URL-адрес.Select the GET HTTP method in the builder tab, and enter the following URL. Обязательно замените {Azure-Maps-Primary-Subscription-key} значением первичного ключа подписки, а {udid} — значением udid, которое вы сохранили при прохождении раздела Отправка данных о геозоне в формате GeoJSON.Make sure to replace {Azure-Maps-Primary-Subscription-key} with your primary subscription key, and {udid} with the udid you saved in the Upload Geofencing GeoJSON data section.

    https://atlas.microsoft.com/spatial/geofence/json?subscription-key={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
    
  3. Нажмите кнопку Отправить.Select Send. В окне ответа появится следующий текст в формате GeoJSON:The following GeoJSON appears in the response window:

    {
      "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
    }
    

В предыдущем ответе GeoJSON видно, что оборудование оставалось в основной геозоне объекта, но вышло из дополнительной геозоны.In the preceding GeoJSON response, the equipment has remained in the main site geofence, but has exited the subsite geofence. Однако обратите внимание, что значение userTime превышает значение expiredTime, определенное в данных о геозоне.Notice, however, that the userTime value is after the expiredTime as defined in the geofence data. Поэтому параметр isEventPublished получает значение false, и уведомление по электронной почте руководителю не отправляется.As a result, the isEventPublished parameter is set to false, and the operations manager doesn't receive an email notification.

Расположение 5(47,63799,-122,134505)Location 5 (47.63799, -122.134505)

  1. В верхней части приложения Postman выберите элемент Создать.Near the top of the Postman app, select New. В окне Create New (Создание) выберите Request (Запрос).In the Create New window, select Request. Введите Имя запроса для запроса.Enter a Request name for the request. Назначьте его расположением 5.Make it Location 5. Выберите коллекцию, созданную в разделе Отправка данных о геозоне в формате GeoJSON и щелкните Save (Сохранить).Select the collection you created in the Upload Geofencing GeoJSON data section, and then select Save.

  2. Выберите HTTP-метод GET на вкладке конструктора и введите следующий URL-адрес.Select the GET HTTP method in the builder tab, and enter the following URL. Обязательно замените {Azure-Maps-Primary-Subscription-key} значением первичного ключа подписки, а {udid} — значением udid, которое вы сохранили при прохождении раздела Отправка данных о геозоне в формате GeoJSON.Make sure to replace {Azure-Maps-Primary-Subscription-key} with your primary subscription key, and {udid} with the udid you saved in the Upload Geofencing GeoJSON data section.

    https://atlas.microsoft.com/spatial/geofence/json?subscription-key={subscription-key}&api-version=1.0&deviceId=device_01&udid={udid}&lat=47.63799&lon=-122.134505&searchBuffer=5&isAsync=True&mode=EnterAndExit
    
  3. Нажмите кнопку Отправить.Select Send. В окне ответа появится следующий текст в формате GeoJSON:The following GeoJSON appears in the response window:

    {
      "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
    }
    

В предыдущем ответе GeoJSON видно, что оборудование покинуло основную геозону объекта.In the preceding GeoJSON response, the equipment has exited the main site geofence. Это означает, что параметр isEventPublished получает значение true, и руководителю строительного объекта будет отправлено по электронной почте уведомление о том, что оборудование вышло из геозоны.As a result, the isEventPublished parameter is set to true, and the operations manager receives an email notification indicating that the equipment has exited a geofence.

Вы также можете отправлять уведомления по электронной почте с помощью Сетки событий и Logic Apps и проверять поддерживаемые обработчики событий в Сетке событий с помощью Azure Maps.You can also Send email notifications using Event Grid and Logic Apps and check Supported Events Handlers in Event Grid using Azure Maps.

Очистка ресурсовClean up resources

Нет ресурсов, требующих очистки.There are no resources that require cleanup.

Дальнейшие действияNext steps