Reagir a eventos do Azure Maps usando a Grade de Eventos

O Azure Maps integra-se com a Grelha de Eventos do Azure, para que os utilizadores possam enviar notificações de eventos para outros serviços e acionar processos a jusante. O objetivo deste artigo é ajudá-lo a configurar seus aplicativos de negócios para ouvir eventos do Azure Maps. Isso permite que os usuários reajam a eventos críticos de forma confiável, escalável e segura. Por exemplo, os usuários podem criar um aplicativo para atualizar um banco de dados, criar um tíquete e entregar uma notificação por e-mail, sempre que um dispositivo entrar em uma cerca geográfica.

A Grade de Eventos do Azure é um serviço de roteamento de eventos totalmente gerenciado, que usa um modelo de publicação-assinatura. A Grade de Eventos tem suporte interno para serviços do Azure, como o Azure Functions e o Azure Logic Apps. Ele pode fornecer alertas de eventos para serviços que não sejam do Azure usando webhooks. Para obter uma lista completa dos manipuladores de eventos suportados pela Grade de Eventos, consulte Uma introdução à Grade de Eventos do Azure.

Azure Event Grid functional model

Tipos de eventos do Azure Maps

A Grade de Eventos usa assinaturas de eventos para rotear mensagens de eventos para assinantes. Uma conta do Azure Maps emite os seguintes tipos de evento:

Tipo de evento Description
Microsoft.Maps.GeofenceEntered Levantadas quando as coordenadas recebidas foram movidas de fora de uma determinada cerca geográfica para dentro
Microsoft.Maps.GeofenceExited Levantadas quando as coordenadas recebidas se deslocaram de dentro de uma determinada cerca geográfica para fora
Microsoft.Maps.GeofenceResult Gerado sempre que uma consulta de cerca geográfica retorna um resultado, independentemente do estado

Esquema de eventos

O exemplo a seguir mostra o esquema para 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"
}

Sugestões para consumir eventos

Os aplicativos que manipulam eventos de cerca geográfica do Azure Maps devem seguir algumas práticas recomendadas:

  • Configure várias assinaturas para rotear eventos para o mesmo manipulador de eventos. É importante não assumir que os eventos são de uma fonte específica. Verifique sempre o tópico da mensagem para garantir que a mensagem veio da fonte esperada.
  • Use o X-Correlation-id campo no cabeçalho da resposta para entender se suas informações sobre objetos estão atualizadas. As mensagens podem chegar desordenadas ou após um atraso.
  • Quando uma solicitação GET ou POST na API Geofence é chamada com o parâmetro mode definido como EnterAndExit, um evento Enter ou Exit é gerado para cada geometria na cerca geográfica para a qual o status foi alterado da chamada anterior da API Geofence.

Próximos passos

Para obter detalhes sobre todos os eventos suportados pelo Azure Maps e pelo esquema, consulte Azure Maps como uma fonte de Grade de Eventos.

Para saber mais sobre como usar a cerca geográfica para controlar operações em um canteiro de obras, consulte: