Dela via


Reagera på Händelser i Azure Kartor med hjälp av Event Grid

Azure Kartor integreras med Azure Event Grid, så att användare kan skicka händelsemeddelanden till andra tjänster och utlösa underordnade processer. Syftet med den här artikeln är att hjälpa dig att konfigurera dina affärsprogram för att lyssna på Azure Kartor händelser. På så sätt kan användarna reagera på kritiska händelser på ett tillförlitligt, skalbart och säkert sätt. Användare kan till exempel skapa ett program för att uppdatera en databas, skapa en biljett och leverera ett e-postmeddelande varje gång en enhet anger geofence.

Azure Event Grid är en fullständigt hanterad händelseroutningstjänst som använder en publiceringsprenumereringsmodell. Event Grid har inbyggt stöd för Azure-tjänster som Azure Functions och Azure Logic Apps. Den kan leverera händelseaviseringar till icke-Azure-tjänster med hjälp av webhooks. En fullständig lista över de händelsehanterare som Event Grid stöder finns i En introduktion till Azure Event Grid.

Azure Event Grid functional model

Händelsetyper för Azure Kartor

Event Grid använder händelseprenumerationer för att dirigera händelsemeddelanden till prenumeranter. Ett Azure Kartor-konto genererar följande händelsetyper:

Händelsetyp beskrivning
Microsoft. Kartor. GeofenceEntered Upphöjt när mottagna koordinater har flyttats från utanför en viss geofence till inom
Microsoft. Kartor. GeofenceExited Upphöjt när mottagna koordinater har flyttats inifrån en viss geofence till utanför
Microsoft. Kartor. GeofenceResult Utlöses varje gång en geofencing-fråga returnerar ett resultat, oavsett tillstånd

Händelseschema

I följande exempel visas schemat för 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"
}

Tips för att konsumera händelser

Program som hanterar Azure Kartor geofence-händelser bör följa några rekommenderade metoder:

  • Konfigurera flera prenumerationer för att dirigera händelser till samma händelsehanterare. Det är viktigt att inte anta att händelser kommer från en viss källa. Kontrollera alltid meddelandeavsnittet för att se till att meddelandet kommer från den källa som du förväntar dig.
  • Använd fältet X-Correlation-id i svarshuvudet för att förstå om din information om objekt är uppdaterad. Meddelanden kan tas emot i annan ordning eller efter en fördröjning.
  • När en GET- eller POST-begäran i Geofence-API:et anropas med lägesparametern inställd på EnterAndExitgenereras en Enter- eller Exit-händelse för varje geometri i geofence för vilken statusen har ändrats från det tidigare Geofence API-anropet.

Nästa steg

Mer information om alla händelser som stöds av Azure Kartor och schemat finns i Azure Kartor som en Event Grid-källa.

Mer information om hur du använder geofencing för att styra verksamheten på en byggarbetsplats finns i: