本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
解析 IoT 裝置的位置
使用 AWS IoT Core 裝置位置從您的裝置解碼測量資料,並使用第三方求解器解析裝置位置。已解析的位置會產生為具有地理座標和準確性資訊的地理JSON承載。您可以從 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 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" } }
-
-
前往資源位置區段,驗證 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" } }
對解析位置時發生的錯誤進行疑難排解
當您嘗試解析位置時,您可能會看到下列任一錯誤碼。使用 GetPositionEstimate
API操作時, 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 裝置位置功能嘗試解析位置時,內部伺服器發生異常狀況。若要嘗試修正此錯誤,請重新整理工作階段,然後重新嘗試傳送要解析的測量資料。