本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
解析 IoT 裝置的位置
使用 AWS IoT Core 裝置位置解碼裝置中的量測資料,並使用協力廠商求解器解析裝置位置。系統會產生解析後的位置作為 GeoJSON 承載,其中包含地理坐標和準確性資訊。您可以從 AWS IoT 主控台、 AWS IoT Wireless API 或解析裝置的位置 AWS CLI。
解析裝置位置 (主控台)
若要解析裝置位置 (主控台)
-
前往主控台中的「裝置位置
」頁 AWS IoT 面。 -
從您的裝置記錄或記錄中 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
} ] }] } } -
若要解析位置資訊,請選擇 Resolve (解析)。
位置資訊的類型為 blob,並以採用 GeoJSON 格式的承載形式傳回,此格式可用於對地理資料結構進行編碼。該承載包含:
-
WGS84 地理座標,其中包括緯度和經度資訊。其亦可能包括海拔高度資訊。
-
報告的位置資訊類型,例如 Point (點)。點位置類型將位置表示為 WGS84 緯度和經度,並編碼為 GeoJSON 點
的型態。 -
水平和垂直準確度資訊,指出求解器預估的位置資訊與實際裝置位置之間的差異 (單位公尺)。
-
可信度,此資料表示位置回應估計值的不確定性。預設值為 0.68,表示實際裝置位置處於預估位置不確定半徑內的機率為 68%。
-
裝置所在的城市、州、國家/地區和郵遞區號。只有在使用 IP 反向查詢求解器時,才會報告此資訊。
-
時間戳記資訊對應於解析位置的日期和時間。其使用的是 Unix 時間戳記格式。
以下程式碼顯示藉由解析位置而傳回的 GeoJSON 裝載範例。
注意
如果「 AWS IoT Core 裝置位置」在嘗試解決位置時報告錯誤,您可以疑難排解錯誤並解決該位置。如需詳細資訊,請參閱 對解析位置時發生的錯誤進行疑難排解。
{ "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" } }
-
-
轉到資源位置部分,並驗證設備位置報告的地理位 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
檔案中。
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
檔案中。承載包含 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" } }
對解析位置時發生的錯誤進行疑難排解
當您嘗試解析位置時,您可能會看到下列任何錯誤碼。 AWS IoT Core 使用 GetPositionEstimate
API 操作時,設備位置可能會產生錯誤,否則請參考 AWS IoT 控制台中與錯誤對應的行號。
-
400 - 錯誤
此錯誤表示設備有效負載 JSON 的格式無法通過 AWS IoT Core 設備位置進行驗證。發生錯誤的原因可能是:
-
JSON 測量資料的格式不正確。
-
裝載只包含時間戳記資訊。
-
測量資料參數 (例如 IP 地址) 無效。
若要解決此錯誤,請檢查您的 JSON 格式是否正確,並包含來自一或多種測量類型的資料作為輸入項。如果 IP 地址無效,請參閱 IP 反向查詢求解器 以深入了解如何提供有效 IP 地址以解決錯誤。
-
-
403 - 錯誤
此錯誤表示您沒有執行 API 操作或使用 AWS IoT 控制台檢索設備位置的權限。若要解決此錯誤,請確認您具有執行此動作所需的許可。如果您的會 AWS Management Console 話或會話令牌已過期,則可能 AWS CLI 會發生此錯誤。若要解決此錯誤,請重新整理工作階段 Token 以使用 AWS CLI,或登出, AWS Management Console 然後使用您的認證登入。
-
404 - 錯誤
此錯誤表示裝置位置找不到或解決任何位 AWS IoT Core 置資訊。由於輸入的測量資料中可能有資料不足等情況,因此可能會發生錯誤。例如:
-
MAC 地址或行動網路基地台的資訊不夠充分。
-
無法使用 IP 地址查詢和擷取位置。
-
GNSS 承載不足。
若要解決這種情況下的錯誤,請檢查您的測量資料是否包含解析裝置位置所需的足夠資訊。
-
-
500 - 錯誤
此錯誤表示 AWS IoT Core 裝置位置功能嘗試解析位置時,內部伺服器發生異常狀況。若要嘗試修正此錯誤,請重新整理工作階段,然後重新嘗試傳送要解析的測量資料。