解析 IoT 设备的位置 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

解析 IoT 设备的位置

使用 Amazon IoT Core 设备定位来解码来自设备的测量数据,并使用第三方求解器解析设备位置。解析后的位置以 GeoJSON 有效负载的形式生成,其中包含地理坐标和准确性信息。您可以通过 Amazon IoT 控制台、 Amazon IoT Wireless API 或解析设备的位置 Amazon CLI。

解析设备位置(控制台)

解析设备位置(控制台)

  1. 转到 Amazon IoT 控制台中的设备位置页面。

  2. 从设备日志或日志中获取有效载荷测量数据,然后将其输入到 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 } ] }] } }
  3. 要解析位置信息,请选择 Resolve(解析)。

    位置信息属于类型 blob 并作为使用 GeoJSON 格式的有效负载返回,此格式用于对地理数据结构进行编码。有效负载中包含:

    • WGS84 地理坐标,包括纬度和经度信息。还可能包含海拔信息。

    • 报告的位置信息类型,例如 Point(点)。点位置类型将位置表示为 WGS84 纬度和经度,编码为 GeoJSON 点

    • 水平和垂直准确性信息,表示解析器估计的位置信息与实际设备位置之间的差异(单位为米)。

    • 置信水平,表示位置估计响应中的不确定性。默认值为 0.68,表示实际设备位置在估计位置的不确定性半径内的概率为 68%。

    • 设备所在的城市、省/直辖市/自治区、国家/地区和邮政编码。只有在使用 IP 反向查找解析器时,才会报告此信息。

    • 时间戳信息与解析该位置的日期和时间相对应。它使用 Unix 时间戳格式。

    以下代码显示了解析位置后返回的 GeoJSON 有效负载示例。

    注意

    如果 “ Amazon 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" } }
  4. 前往资源位置部分并验证 Amazon IoT Core 设备位置报告的地理位置信息。您可以复制有效负载以用于其他应用程序 Amazon Web Service和。例如,您可以使用 位置 将地理位置数据发送到 Amazon Location Service。

解析设备位置 (API)

要使用 Amazon 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 地址作为测量类型。 Amazon 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" } }

对解析位置时出现的错误进行故障排查

尝试解析位置时,可能会看到以下任何错误代码。 Amazon IoT Core 使用 GetPositionEstimate API 操作时,设备位置可能会生成错误,或者引用 Amazon IoT 控制台中与错误对应的行号。

  • 400 错误

    此错误表示设备有效负载 JSON 的格式无法通过 Amazon IoT Core 设备位置进行验证。出现此错误可能是因为:

    • JSON 测量数据的格式不正确。

    • 有效负载中仅包含时间戳信息。

    • 诸如 IP 地址之类的测量数据参数无效。

    要解决此错误,请检查您的 JSON 格式是否正确,是否包含来自一种或多种测量类型的数据作为输入。如果 IP 地址无效,有关如何提供有效 IP 地址来解决此错误的信息,请参阅 IP 反向查找求解器

  • 403 错误

    此错误表示您无权执行 API 操作或使用 Amazon IoT 控制台检索设备位置。要解决此错误,请验证您是否拥有执行此操作所需的权限。如果您的 Amazon Web Services Management Console 会话或会 Amazon CLI 话令牌已过期,则可能会发生此错误。要解决此错误,请刷新会话令牌以使用 Amazon CLI,或者注销, Amazon Web Services Management Console 然后使用您的凭据登录。

  • 404 错误

    此错误表明 “ Amazon IoT Core 设备位置” 未找到或解决任何位置信息。此错误可能是由于测量数据输入中数据不足等原因造成的。例如:

    • MAC 地址或蜂窝发射塔信息不足。

    • IP 地址不可用于查找和检索位置。

    • GNSS 有效负载不足。

    要解决此类情况下出现的错误,请检查您的测量数据是否包含解析设备位置所需的足够信息。

  • 404 错误

    此错误表明,当 Amazon IoT Core 设备位置功能尝试解析位置时,出现了内部服务器异常。要尝试修复此错误,请刷新会话,并重试发送需要解析的测量数据。