位置求解器和裝置承載 - AWS IoT Core

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

位置求解器和裝置承載

位置求解器是可用來解析 IoT 裝置位置的演算法。 AWS IoT Core 「裝置位置」支援下列位置求解器。您會看到這些測量類型的 JSON 承載資料格式範例、求解器支援的裝置,以及解析位置的方式。

若要解析裝置位置,請指定一或多個測量資料類型。系統會綜合所有測量資料傳回單一的解析位置。

基於 Wi-Fi 的求解器

使用 Wi-Fi 解析器依據來自 Wi-Fi 存取點的掃描資訊來解析位置。該求解器支持 WLAN 技術,可用於計算一般 IoT 設備和 LoRa WAN 無線設備的設備位置。

LoRaWAN 裝置必須具有 LoRa Edge 晶片組,才能解碼傳入的 Wi-Fi 掃描資訊。 LoRa Edge 是一個超低功耗平台,集成了遠程 LoRa 收發器,多星座 GNSS 掃描儀和被動 Wi-Fi MAC 掃描儀,針對地理定位應用。從裝置收到上行訊息時,Wi-Fi 掃描資料會傳送至 AWS IoT Core 裝置位置,並根據 Wi-Fi 掃描結果估算位置。解碼後的資訊會傳遞到 Wi-Fi 求解器以擷取位置資訊。

下列程式碼範例顯示了含有測量資料的裝置所提供的 JSON 承載。當 AWS IoT Core 設備位置接收此數據作為輸入時,它會向求解器提供者發送 HTTP 請求以解析位置信息。若要擷取資訊,請指定 MAC 地址和 RSS (接收訊號強度) 的值。若要這麼做,請使用此格式提供 JSON 承載,或使用 GetPositionEstimateAPI 作業的WiFiAccessPoints物件參數。

{ "Timestamp": 1664313161, // optional "WiFiAccessPoints": [ { "MacAddress": "A0:EC:F9:1E:32:C1", // required "Rss": -75 // required } ] }

行動網路求解器

您可以使用行動網路求解器使用從行動網路無線電塔取得的測量資料來解析位置。求解器支援下列技術。即使您納入任何或所有上述技術的測量資料,也只會得出單筆解析位置資訊。

  • GSM

  • CDMA

  • WCDMA

  • TD-SCDMA

  • LTE

行動網路求解器承載範例

下列程式碼範例顯示了含有行動網路測量資料的裝置所提供的 JSON 承載。當 AWS IoT Core 設備位置接收此數據作為輸入時,它會向求解器提供者發送 HTTP 請求以解析位置信息。若要擷取資訊,您可以在主控台中使用此格式提供 JSON 承載,或指定 GetPositionEstimateAPI 作業CellTowers參數的值。您可以使用上述任何或所有行動網路技術來指定參數值,藉以提供測量資料。

使用此測量資料時,您必須指定特定資訊,例如網路或行動網路的國家/地區代碼及其他選擇性參數,包括有關本機 ID 的資訊。下列程式碼顯示承載格式的範例。如需這些參數的詳細資訊,請參閱 LTE 物件

{ "Timestamp": 1664313161, // optional "CellTowers": { "Lte": [ { "Mcc": int, // required "Mnc": int, // required "EutranCid": int, // required. Make sure that you use int for EutranCid. "Tac": int, // optional "LteLocalId": { // optional "Pci": int, // required "Earfcn": int, // required }, "LteTimingAdvance": int, // optional "Rsrp": int, // optional "Rsrq": float, // optional "NrCapable": boolean, // optional "LteNmr": [ // optional { "Pci": int, // required "Earfcn": int, // required "EutranCid": int, // required "Rsrp": int, // optional "Rsrq": float // optional } ] } ] } }

使用此測量資料時,您必須指定特定資訊,例如網路或行動網路的國家/地區代碼、基地台資訊及其他選擇性參數。下列程式碼顯示承載格式的範例。如需這些參數的詳細資訊,請參閱 GSM 物件

{ "Timestamp": 1664313161, // optional "CellTowers": { "Gsm": [ { "Mcc": int, // required "Mnc": int, // required "Lac": int, // required "GeranCid": int, // required "GsmLocalId": { // optional "Bsic": int, // required "Bcch": int, // required }, "GsmTimingAdvance": int, // optional "RxLevel": int, // optional "GsmNmr": [ // optional { "Bsic": int, // required "Bcch": int, // required "RxLevel": int, // optional "GlobalIdentity": { "Lac": int, // required "GeranCid": int // required } } ] } ] }

使用此測量資料時,您必須指定特定資訊,例如訊號功率和識別資訊、基地台資訊及其他選擇性參數。下列程式碼顯示承載格式的範例。如需這些參數的詳細資訊,請參閱 CDMA 物件

{ "Timestamp": 1664313161, // optional "CellTowers": { "Cdma": [ { "SystemId": int, // required "NetworkId": int, // required "BaseStationId": int, // required "RegistrationZone": int, // optional "CdmaLocalId": { // optional "PnOffset": int, // required "CdmaChannel": int, // required }, "PilotPower": int, // optional "BaseLat": float, // optional "BaseLng": float, // optional "CdmaNmr": [ // optional { "PnOffset": int, // required "CdmaChannel": int, // required "PilotPower": int, // optional "BaseStationId": int // optional } ] } ] } }

使用此測量資料時,您必須指定特定資訊,例如網路與國家/地區代碼、訊號功率和識別資訊、基地台資訊及其他選擇性參數。下列程式碼顯示承載格式的範例。如需這些參數的詳細資訊,請參閱 CDMA 物件

{ "Timestamp": 1664313161, // optional "CellTowers": { "Wcdma": [ { "Mcc": int, // required "Mnc": int, // required "UtranCid": int, // required "Lac": int, // optional "WcdmaLocalId": { // optional "Uarfcndl": int, // required "Psc": int, // required }, "Rscp": int, // optional "Pathloss": int, // optional "WcdmaNmr": [ // optional { "Uarfcndl": int, // required "Psc": int, // required "UtranCid": int, // required "Rscp": int, // optional "Pathloss": int, // optional } ] } ] } }

使用此測量資料時,您必須指定特定資訊,例如網路與國家/地區代碼、訊號功率和識別資訊、基地台資訊及其他選擇性參數。下列程式碼顯示承載格式的範例。如需這些參數的詳細資訊,請參閱 CDMA 物件

{ "Timestamp": 1664313161, // optional "CellTowers": { "Tdscdma": [ { "Mcc": int, // required "Mnc": int, // required "UtranCid": int, // required "Lac": int, // optional "TdscdmaLocalId": { // optional "Uarfcn": int, // required "CellParams": int, // required }, "TdscdmaTimingAdvance": int, // optional "Rscp": int, // optional "Pathloss": int, // optional "TdscdmaNmr": [ // optional { "Uarfcn": int, // required "CellParams": int, // required "UtranCid": int, // optional "Rscp": int, // optional "Pathloss": int, // optional } ] } ] } }

IP 反向查詢求解器

您可以使用 IP 反向查詢求解器,以 IP 地址作為輸入項來解析位置。求解器可以從已佈建的裝置取得位置資訊。 AWS IoT使用 IPv4 或 IPv6 標準模式格式,或 IPv6 十六進位壓縮模式來指定 IP 地址資訊。然後,您將取得解析位置估計值,包括裝置所在城市和國家/地區等額外資訊。

注意

使用 IP 反向查詢,即表示您同意不將其用於識別或定位特定家庭或街道地址。

下列程式碼範例顯示了含有測量資料的裝置所提供的 JSON 承載。當 AWS IoT Core 裝置位置接收到測量資料中的 IP 位址資訊時,它會在求解器提供者的資料庫中查詢此資訊,然後用來解析位置資訊。若要擷取資訊,請使用此格式提供 JSON 承載,或指定 GetPositionEstimateAPI 作業的 I p 參數值。

注意

使用此求解器時,除了座標之外,還會報告裝置所在的城市、州、國家/地區和郵遞區號。如需範例,請參閱解析裝置位置 (主控台)

{ "Timestamp": 1664313161, "Ip":{ "IpAddress":"54.240.198.35" } }

求解器

使用 GNSS (全球導航衛星系統) 求解器,依據 GNSS 掃描結果訊息或 NAV 訊息包含的資訊來擷取裝置位置。您可以選擇性地提供額外的 GNSS 輔助資訊,以減少求解器搜尋訊號時必須使用的變數數目。藉由提供此輔助資訊 (包括位置、高度以及擷取時間和準確度資訊),求解器可以輕鬆識別視圖中的衛星並計算裝置位置。

此求解器可用於 LoRa WAN 裝置,以及已佈建的其他裝置。 AWS IoT對於一般 IoT 裝置,如果裝置支援使用 GNSS 進行位置估算,則收發器會在從裝置接收到 GNSS 掃描資訊後解析位置資訊。對於 LoRa WAN 裝置,這些裝置必須具有 LoRa Edge 晶片組。從設備接收到上行鏈路消息時,GNSS 掃描數據將發送到 AWS IoT Core for LoRaWAN,並根據收發器的掃描結果估計該位置。

下列程式碼範例顯示了含有測量資料的裝置所提供的 JSON 承載。當 AWS IoT Core 設備位置接收到包含測量數據中有效載荷的 GNSS 掃描信息時,它會使用收發器和包含的任何其他輔助信息來搜索信號並解析位置信息。若要擷取資訊,請使用此格式提供 JSON 承載,或為 GetPositionEstimateAPI 作業的 Gnss 參數指定值。

注意

您必須先 AWS IoT Core 從承載中移除目標位置,裝置位置才能解析裝置位置。

{ "Timestamp": 1664313161, // optional "Gnss": { "AssistAltitude": number, // optional "AssistPosition": [ number ], // optional "CaptureTime": number, // optional "CaptureTimeAccuracy": number, // optional "Payload": "string", // required "Use2DSolver": boolean // optional } }