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

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

位置求解器和裝置承載

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

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

基於 Wi-Fi 的求解器

使用 Wi-Fi 解析器依據來自 Wi-Fi 存取點的掃描資訊來解析位置。此求解器支援 WLAN 技術,可用來計算一般 IoT 裝置和 LoRaWAN 無線裝置的裝置位置。

LoRaWAN 裝置必須具有可對傳入 Wi-Fi 掃描資訊進行解碼的 LoRaWAN 晶片組。LoRa Edge 是一個超低功耗地理位置平台,以地理位置應用為目標,整合了長距離 LoRa 收發器、多星系 GNSS 掃描器和被動式 Wi-Fi MAC 掃描器。從裝置收到上行訊息時,Wi-Fi 掃描資料會傳送至 AWS IoT Core 裝置位置,並根據 Wi-Fi 掃描結果估計位置。解碼後的資訊會傳遞到 Wi-Fi 求解器以擷取位置資訊。

下列程式碼範例顯示了含有測量資料的裝置所提供的 JSON 承載。當 AWS IoT Core Device Location 收到此資料做為輸入時,會傳送 HTTP 請求給求解器提供者,以解析位置資訊。若要擷取資訊,請指定 MAC 地址和 RSS (接收訊號強度) 的值。若要執行此步驟,請使用此格式提供 JSON 承載,或使用 GetPositionEstimate API 操作的 WiFiAccessPoints object 參數。

{ "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 Device Location 收到此資料做為輸入時,會傳送 HTTP 請求給求解器提供者,以解析位置資訊。若要擷取資訊,您可以在主控台中使用此格式提供 JSON 承載,或指定 GetPositionEstimate API 操作的 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 Device Location 在測量資料中收到 IP 地址資訊時,它會在求解器提供者的資料庫中查詢此資訊,然後用於解析位置資訊。若要擷取資訊,請使用此格式提供 JSON 承載,或指定 GetPositionEstimate API 操作的 Ip 參數值。

注意

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

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

求解器

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

此求解器可與 LoRaWAN 裝置和已透過 AWS IoT佈建的其他裝置搭配使用。對於一般 IoT 裝置,如果裝置支援使用 GNSS 進行位置估算,則收發器會在從裝置接收到 GNSS 掃描資訊後解析位置資訊。對於 LoRaWAN 裝置,這類裝置必須具備 LoRa 邊緣晶片組。從裝置接收上行訊息時,GNSS 掃描資料會傳送到 AWS IoT Core for LoRaWAN,而位置是根據收發器的掃描結果估計。

下列程式碼範例顯示了含有測量資料的裝置所提供的 JSON 承載。當 AWS IoT Core Device Location 收到包含測量資料中承載的 GNSS 掃描資訊時,它會使用收發器和包含的任何其他協助資訊來搜尋訊號並解析位置資訊。若要擷取資訊,請使用此格式提供 JSON 承載,或指定 GetPositionEstimate API 操作的 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 } }