位置求解器和设备有效负载 - AWS IoT Core

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

位置求解器和设备有效负载

位置求解器是可用于解析物联网设备位置的算法。 AWS IoT Core 设备定位支持以下位置求解器。您将看到这些测量类型的 JSON 有效负载格式的示例,求解器支持的设备,以及如何解析位置。

要解析设备位置,请指定一种或多种这些测量数据类型。将为所有测量数据组合返回单个解析位置。

基于 Wi-Fi 的求解器

使用基于 Wi-Fi 的求解器和来自 Wi-Fi 接入点的扫描信息来解析位置。求解器支持 WLAN 技术,可用于计算一般物联网设备和 W LoRa AN 无线设备的设备位置。

LoRa广域网设备必须配备 LoRa Edge 芯片组,该芯片组可以解码传入的 Wi-Fi 扫描信息。 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 负载,要么使用 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 Device Location 收到这些数据作为输入时,它会向求解器提供者发送 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 Device Location 收到测量数据中的 IP 地址信息时,它会在求解器提供者的数据库中查找这些信息,然后使用该数据库来解析位置信息。要检索信息,请使用此格式提供 JSON 负载,或者为 GetPositionEstimateAPI 操作的 I p 参数指定值。

注意

使用此解析器时,除了坐标外,还会报告设备所在的城市、省/直辖市/自治区、国家/地区和邮政编码。有关示例,请参阅解析设备位置(控制台)

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

GNSS 求解器

使用 GNSS(全球导航卫星系统)求解器和 GNSS 扫描结果消息或 NAV 消息中包含的信息检索设备位置。可以选择提供额外的 GNSS 辅助信息,从而减少求解器搜索信号时必须使用的变量数量。通过提供这种辅助信息(包括位置、高度,以及捕获时间和准确度信息),求解器可以轻松识别视野中的卫星并计算设备位置。

此求解器可用于 LoRa WAN 设备和其他已配置的设备。 AWS IoT对于一般 IoT 设备,如果设备支持使用 GNSS 进行位置估计,当从设备接收 GNSS 扫描信息时,收发器会解析位置信息。对于 LoRa WAN 设备,这些设备必须配备 LoRa Edge 芯片组。当收到来自设备的上行链路消息时,GNSS 扫描数据将发送到 适用于 LoRaWAN 的 AWS IoT Core,并根据收发器的扫描结果估算位置。

以下代码显示了来自包含测量数据的设备的 JSON 有效负载示例。当 AWS IoT Core Device Location 收到包含测量数据中有效载荷的 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 } }