解析 IoT 裝置的位置 - AWS IoT Core

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

解析 IoT 裝置的位置

使用 AWS IoT Core 裝置位置從您的裝置解碼測量資料,並使用第三方求解器解析裝置位置。已解析的位置會產生為具有地理座標和準確性資訊的地理JSON承載。您可以從 AWS IoT 主控台、 AWS IoT Wireless API或 解析裝置的位置 AWS CLI。

解析裝置位置 (主控台)

若要解析裝置位置 (主控台)

  1. 前往 AWS IoT 主控台中的裝置位置頁面。

  2. 從裝置日誌或 CloudWatch 日誌中取得承載測量資料,並透過承載區段將其輸入解析位置

    下列程式碼顯示範例JSON承載。承載包含行動網路和 Wi-Fi 測量資料。如果您的承載包含其他類型的測量資料,則會使用具有最佳準確度的求解器。如需詳細資訊和承載範例,請參閱 位置求解器和裝置承載

    注意

    JSON 承載必須至少包含一種類型的測量資料。

    { "Timestamp": 1664313161, "Ip":{ "IpAddress": "54.240.198.35" }, "WiFiAccessPoints": [{ "MacAddress": "A0:EC:F9:1E:32:C1", "Rss": -77 }], "CellTowers": { "Gsm": [{ "Mcc": 262, "Mnc": 1, "Lac": 5126, "GeranCid": 16504, "GsmLocalId": { "Bsic": 6, "Bcch": 82 }, "GsmTimingAdvance": 1, "RxLevel": -110, "GsmNmr": [{ "Bsic": 7, "Bcch": 85, "RxLevel": -100, "GlobalIdentity": { "Lac": 1, "GeranCid": 1 } }] }], "Wcdma": [{ "Mcc": 262, "Mnc": 7, "Lac": 65535, "UtranCid": 14674663, "WcdmaNmr": [{ "Uarfcndl": 10786, "UtranCid": 14674663, "Psc": 149 }, { "Uarfcndl": 10762, "UtranCid": 14674663, "Psc": 211 } ] }], "Lte": [{ "Mcc": 262, "Mnc": 2, "EutranCid": 2898945, "Rsrp": -50, "Rsrq": -5, "LteNmr": [{ "Earfcn": 6300, "Pci": 237, "Rsrp": -60, "Rsrq": -6, "EutranCid": 2898945 }, { "Earfcn": 6300, "Pci": 442, "Rsrp": -70, "Rsrq": -7, "EutranCid": 2898945 } ] }] } }
  3. 若要解析位置資訊,請選擇 Resolve (解析)。

    位置資訊屬於 Blob 類型,並作為承載傳回,該承載使用 GeoJSON 格式,該格式是用於編碼地理資料結構的格式。該承載包含:

    • WGS84 地理座標,其中包含緯度和經度資訊。其亦可能包括海拔高度資訊。

    • 報告的位置資訊類型,例如 Point (點)。點位置類型表示位置為WGS84緯度和經度,編碼為 GeoJSON 點

    • 水平和垂直準確度資訊,指出求解器預估的位置資訊與實際裝置位置之間的差異 (單位公尺)。

    • 可信度,此資料表示位置回應估計值的不確定性。預設值為 0.68,表示實際裝置位置處於預估位置不確定半徑內的機率為 68%。

    • 裝置所在的城市、州、國家/地區和郵遞區號。只有在使用 IP 反向查詢求解器時,才會報告此資訊。

    • 時間戳記資訊對應於解析位置的日期和時間。其使用的是 Unix 時間戳記格式。

    下列程式碼顯示解析位置時傳回的範例 GeoJSON 承載。

    注意

    如果 AWS IoT Core Device Location 在嘗試解析位置時回報錯誤,您可以對錯誤進行疑難排解並解析位置。如需詳細資訊,請參閱對解析位置時發生的錯誤進行疑難排解

    { "coordinates": [ 13.376076698303223, 52.51823043823242 ], "type": "Point", "properties": { "verticalAccuracy": 45, "verticalConfidenceLevel": 0.68, "horizontalAccuracy": 303, "horizontalConfidenceLevel": 0.68, "country": "USA", "state": "CA", "city": "Sunnyvalue", "postalCode": "91234", "timestamp": "2022-11-18T12:23:58.189Z" } }
  4. 前往資源位置區段,驗證 AWS IoT Core 裝置位置 報告的地理位置資訊。您可以複製承載,以便與其他應用程式和 搭配使用 AWS 服務。例如,您可以使用 位置 將地理位置資料傳送至 Amazon Location Service。

解析裝置位置 (API)

若要使用 解析裝置位置 AWS IoT Wireless API,請使用 GetPositionEstimateAPI操作或 get-position-estimateCLI命令。指定承載測量資料做為輸入,然後執行 API操作以解析裝置位置。

注意

GetPositionEstimate API 操作不會儲存任何裝置或狀態資訊,也無法用來擷取歷史位置資料。此功能會執行一次性操作,以解析測量資料並產生位置估計值。若要擷取位置資訊,您必須在每次執行此操作時指定承載資訊API。

下列命令顯示如何使用此操作解析位置的範例API。

注意

執行 get-position-estimate CLI 命令時,您必須將輸出JSON檔案指定為第一個輸入。此JSON檔案將以 GeoJSON 格式儲存從 取得作為回應CLI的預估位置資訊。例如,下列命令會將位置資訊存放在 locationout.json file.

aws iotwireless get-position-estimate locationout.json \ --ip IpAddress=""54.240.198.35"" \ --wi-fi-access-points \ MacAddress="A0:EC:F9:1E:32:C1",Rss=-75 \ MacAddress="A0:EC:F9:15:72:5E",Rss=-67

此範例包含 Wi-Fi 存取點和 IP 地址作為測量類型。 AWS IoT Core 裝置位置會在 Wi-Fi 求解器和 IP 反向查詢求解器之間進行選擇,並選取精確度更高的求解器。

解析的位置會傳回為使用 GeoJSON 格式的承載,這是用於編碼地理資料結構的格式。然後,它會存放在 locationout.json file. 承載包含WGS84緯度和經度座標、準確性和可信度層級資訊、位置資料類型,以及解析位置的時間戳記。

{ "coordinates": [ 13.37704086303711, 52.51865005493164 ], "type": "Point", "properties": { "verticalAccuracy": 707, "verticalConfidenceLevel": 0.68, "horizontalAccuracy": 389, "horizontalConfidenceLevel": 0.68, "country": "USA", "state": "CA", "city": "Sunnyvalue", "postalCode": "91234", "timestamp": "2022-11-18T14:03:57.391Z" } }

對解析位置時發生的錯誤進行疑難排解

當您嘗試解析位置時,您可能會看到下列任一錯誤碼。使用 GetPositionEstimateAPI操作時, AWS IoT Core 裝置位置可能會產生錯誤,或者參考與 AWS IoT 主控台中錯誤對應的行號。

  • 400 - 錯誤

    此錯誤表示裝置承載的格式JSON無法由 AWS IoT Core 裝置位置驗證。發生錯誤的原因可能是:

    • JSON 測量資料的格式不正確。

    • 裝載只包含時間戳記資訊。

    • 測量資料參數 (例如 IP 地址) 無效。

    若要解決此錯誤,請檢查 JSON 的格式是否正確,並包含來自一或多個測量類型的資料作為輸入。如果 IP 地址無效,請參閱 IP 反向查詢求解器 以深入了解如何提供有效 IP 地址以解決錯誤。

  • 403 - 錯誤

    此錯誤表示您沒有執行API操作或使用 AWS IoT 主控台擷取裝置位置的許可。若要解決此錯誤,請確認您具有執行此動作所需的許可。如果您的 AWS Management Console 工作階段或 AWS CLI 工作階段權杖已過期,則可能會發生此錯誤。若要解決此錯誤,請重新整理工作階段權杖以使用 AWS CLI,或登出 AWS Management Console ,然後使用您的憑證登入。

  • 404 - 錯誤

    此錯誤表示 AWS IoT Core 裝置位置找不到或解決位置資訊。由於輸入的測量資料中可能有資料不足等情況,因此可能會發生錯誤。例如:

    • MAC 地址或行動通訊塔資訊不足。

    • 無法使用 IP 地址查詢和擷取位置。

    • GNSS 承載不足。

    若要解決這種情況下的錯誤,請檢查您的測量資料是否包含解析裝置位置所需的足夠資訊。

  • 500 - 錯誤

    此錯誤表示 AWS IoT Core 裝置位置功能嘗試解析位置時,內部伺服器發生異常狀況。若要嘗試修正此錯誤,請重新整理工作階段,然後重新嘗試傳送要解析的測量資料。