使用事件格線回應 Azure 地圖服務事件
在此文章
Azure 地圖服務事件類型
結構描述
取用事件的秘訣
下一步
「Azure 地圖服務」能與「Azure 事件格線」整合,讓使用者能夠將事件通知傳送給其他服務並觸發下游程序。 本文的目的是要協助您設定商務應用程式來接聽 Azure 地圖服務事件。 這可讓使用者以可靠、可調整且安全的方式回應重要事件。 例如,使用者可以建置應用程式,在每次裝置進入地理柵欄時更新資料庫、建立票證,以及傳遞電子郵件通知。
Azure 事件方格是一個完全受控的事件路由服務,使用發佈-訂閱模型。 事件方格內建 Azure 服務的支援,例如 Azure Functions 和 Azure Logic Apps 。 可以使用 Webhook 將事件警示傳遞至非 Azure 服務。 如需事件方格所支援的事件處理常式完整清單,請參閱 Azure 事件方格簡介 。
事件方格會使用事件訂閱 路由傳送事件訊息至訂閱者。 Azure 地圖服務帳戶會發出下列事件類型:
展開表格
事件類型
描述
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 地圖服務地理柵欄事件的應用程式應該遵循幾個建議做法:
將多個訂用帳戶設定為將事件路由到相同的事件處理常式。 請務必不要假設事件是來自特定來源。 請一律檢查訊息主題,以確保訊息來自您預期的來源。
請使用回應標頭中的 X-Correlation-id
欄位來了解物件的相關資訊是否為最新狀態。 訊息可能會不按順序抵達或在延遲之後抵達。
在模式參數設定為 EnterAndExit
的情況下,在地理柵欄 API 中呼叫 Get 和 POST 時,系統會針對其狀態自上一個地理柵欄 API 呼叫以來已變更的地理柵欄,為其中每個幾何產生 Enter 或 Exit 事件。
如需 Azure 地圖服務和結構描述支援的所有事件相關詳細資訊,請參閱 Azure 地圖服務即事件方格來源 。
若要深入了解如何使用地理柵欄來控制工地的作業,請參閱: