地理圍欄
手繪筆記由 Nitya Narasimhan 提供。點擊圖片查看大圖。
這段影片概述了地理圍欄及如何在 Azure Maps 中使用它們,這些主題將在本課程中介紹:
🎥 點擊上方圖片觀看影片
課前測驗
介紹
在過去的三節課中,你已經使用物聯網來定位從農場運送農產品到加工中心的卡車。你已經捕獲了 GPS 數據,將其發送到雲端存儲,並在地圖上進行了可視化。提高供應鏈效率的下一步是當卡車即將到達加工中心時獲得警報,這樣卸貨所需的工作人員可以在車輛到達時立即準備好叉車和其他設備。這樣他們可以快速卸貨,你不必支付卡車和司機的等待費用。
在本課程中,你將學習地理圍欄 - 定義的地理空間區域,例如距離加工中心 2 公里內的區域,以及如何測試 GPS 坐標是否在地理圍欄內或外,以便你可以查看你的 GPS 傳感器是否已到達或離開某個區域。
在本課程中,我們將介紹:
🗑 這是本項目中的最後一課,因此在完成本課程和作業後,別忘了清理你的雲端服務。你將需要這些服務來完成作業,因此請確保先完成作業。
如有需要,請參閱清理項目指南以獲取清理指示。
什麼是地理圍欄
地理圍欄是現實世界地理區域的虛擬邊界。地理圍欄可以是定義為點和半徑的圓(例如圍繞建築物的 100 米寬的圓),或覆蓋區域的多邊形,例如學校區域、城市邊界或大學或辦公園區。
💁 你可能已經在不知不覺中使用了地理圍欄。如果你使用 iOS 提醒應用或 Google Keep 設置了基於位置的提醒,你就已經使用了地理圍欄。這些應用會根據給定的位置設置地理圍欄,並在你的手機進入地理圍欄時提醒你。
有很多原因讓你想知道車輛是否在地理圍欄內或外:
- 卸貨準備 - 獲得車輛到達現場的通知可以讓工作人員準備卸貨,減少車輛等待時間。這可以讓司機在一天內進行更多次的交付,減少等待時間。
- 稅務合規 - 一些國家(如新西蘭)對柴油車輛在公共道路上行駛時根據車輛重量徵收道路稅。使用地理圍欄可以跟踪在公共道路上行駛的里程,而不是在農場或伐木區等私人道路上行駛的里程。
- 監控盜竊 - 如果車輛應該只留在某個區域(例如農場),而它離開了地理圍欄,則可能被盜。
- 位置合規 - 工作場所、農場或工廠的某些部分可能對某些車輛禁區,例如將運載人工肥料和農藥的車輛遠離種植有機農產品的田地。如果進入地理圍欄,則車輛不符合規定,司機可以收到通知。
✅ 你能想到其他地理圍欄的用途嗎?
Azure Maps,你在上一課中用來可視化 GPS 數據的服務,允許你定義地理圍欄,然後測試某個點是否在地理圍欄內或外。
定義地理圍欄
地理圍欄是使用 GeoJSON 定義的,與上一課中添加到地圖上的點相同。在這種情況下,它不是 Point
值的 FeatureCollection
,而是包含 Polygon
的 FeatureCollection
。
{
"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"
}
}
]
}
每個多邊形上的點都定義為一個經度、緯度對的數組,這些點在一個數組中被設置為 coordinates
。在上一課中的 Point
中,coordinates
是一個包含 2 個值(緯度和經度)的數組,而對於 Polygon
,它是一個包含 2 個值(經度、緯度)的數組的數組。
💁 記住,GeoJSON 使用
經度、緯度
來表示點,而不是緯度、經度
多邊形坐標數組總是比多邊形上的點數多 1 個,最後一個條目與第一個條目相同,閉合多邊形。例如,對於一個矩形,會有 5 個點。
在上圖中,有一個矩形。多邊形坐標從左上角的 47,-122 開始,然後向右移動到 47,-121,然後向下移動到 46,-121,然後向右移動到 46, -122,然後回到起點 47, -122。這給了多邊形 5 個點 - 左上角、右上角、右下角、左下角,然後是左上角以閉合它。
✅ 嘗試在你的家或學校周圍創建一個 GeoJSON 多邊形。使用像 GeoJSON.io 這樣的工具。
任務 - 定義地理圍欄
要在 Azure 地圖中使用地理圍欄,首先必須將其上傳到你的 Azure 地圖帳戶。一旦上傳,你將獲得一個唯一的 ID,你可以用它來測試某個點是否在地理圍欄內。要將地理圍欄上傳到 Azure 地圖,你需要使用地圖 Web API。你可以使用名為 curl 的工具來調用 Azure 地圖 Web API。
🎓 Curl 是一個命令行工具,用於對 Web 端點發出請求
-
如果你使用的是 Linux、macOS 或 Windows 10 的最新版本,你可能已經安裝了 curl。從你的終端或命令行運行以下命令來檢查:
curl --version
如果你沒有看到 curl 的版本信息,你需要從 curl 下載頁面 安裝它。
💁 如果你熟悉 Postman,那麼你可以選擇使用它。