Реагирование на события Azure Maps c помощью Сетки событий
Azure Maps интегрируются с сеткой событий Azure, чтобы пользователи могли отправлять уведомления о событиях другим службам и запускать последующие процессы. Цель этой статьи — помочь настроить бизнес-приложения для прослушивания событий Azure Maps. Благодаря этому пользователи могут реагировать на критические события и действовать надежным, масштабируемым и безопасным способом. Например, пользователи могут создать приложение для обновления базы данных, создать запрос и отправить уведомление по электронной почте каждый раз, когда устройство входит в геозону.
Сетка событий Azure — это полностью управляемая служба маршрутизации событий, использующая модель публикации и подписки. Сетка событий имеет встроенную поддержку служб Azure, таких как Функции Azure и Azure Logic Apps. Она может передавать оповещения о событиях в службы, не относящиеся к Azure, с помощью веб-перехватчиков. Полный список обработчиков событий, которые поддерживает служба "Сетка событий", см. в статье An introduction to Azure Event Grid (Общие сведения о службе "Сетка событий Azure").
Типы событий Azure Maps
Сетка событий использует подписки на события для маршрутизации сообщений о событиях подписчикам. Учетная запись Azure Maps выводит следующие типы событий.
Тип события | Description |
---|---|
Microsoft.Maps.GeofenceEntered | Создается, когда полученные координаты переместились с пределов данной геозоны внутрь. |
Microsoft.Maps.GeofenceExited | Создается, когда полученные координаты переместились из данной геозоны наружу |
Microsoft.Maps.GeofenceResult | Создается каждый раз, когда запрос геозоны возвращает результат с любым состоянием. |
Схема событий
В следующем примере показана схема для GeofenceResult:
{
"id":"451675de-a67d-4929-876c-5c2bf0b2c000",
"topic":"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Maps/accounts/{accountName}",
"subject":"/spatial/geofence/udid/{udid}/id/{eventId}",
"data":{
"geometries":[
{
"deviceId":"device_1",
"udId":"1a13b444-4acf-32ab-ce4e-9ca4af20b169",
"geometryId":"1",
"distance":999.0,
"nearestLat":47.609833,
"nearestLon":-122.148274
}
],
"expiredGeofenceGeometryId":[
],
"invalidPeriodGeofenceGeometryId":[
]
},
"eventType":"Microsoft.Maps.GeofenceResult",
"eventTime":"2018-11-08T00:52:08.0954283Z",
"metadataVersion":"1",
"dataVersion":"1.0"
}
Советы по использованию событий
Приложения, которые обрабатывают события геозоны Azure Maps, должны соответствовать нескольким рекомендациям.
- Настройте несколько подписок для маршрутизации событий в один обработчик событий. Не следует предполагать, что события поступают из определенного источника. Всегда проверяйте тему сообщения, чтобы убедиться, что сообщение пришло из ожидаемого источника.
- Используйте поле
X-Correlation-id
в заголовке ответа, чтобы понять, является ли информация об объектах актуальной. Сообщения могут приступать не по порядку или после некоторой задержки. - При вызове API геозоны Get и POST с параметром режима, которому присвоено значение
EnterAndExit
, событие Enter или Exit генерируется для каждого геометрического объекта в геозоне, для которого изменилось состояние из предыдущего вызова API геозоны.
Следующие шаги
Дополнительные сведения обо всех событиях, поддерживаемых azure Карты и схемой, см. в Карты Azure в качестве источника сетки событий.
Дополнительные сведения о том, как использовать геозоны для операций управления на сайте конструкции, см. в статье