如何模拟物联网的位置跟踪?

How to simulate position tracking of an iot thing?

我需要在我的物联网平台 Thingworx 中为我的 'IoT thing' 模拟位置跟踪。例如:如果我有一辆车作为一个物体,它有两种模式移动和停止。我需要模拟汽车处于 'moving' 状态时不断变化的纬度和经度,并存储生成的坐标,以便它们稍后可以显示在混搭中的 Google 地图小部件上。同样,如果汽车停下来,那么它应该显示上次停下的位置。我有以下问题:

  1. 如何实现?比如,我应该创建和使用服务还是订阅(以速度值作为触发器)?
  2. 这样的功能需要什么样的代码片段?
  3. 我应该使用 Google api 吗?
  4. 另外,如何将 lat/long 的变化值存储在数据类型为 'Location' 的变量中?

谢谢!

你的要求不是三言两语能说清楚的!最好的方法是向您展示一个使用 Google 地图 API 的示例,您可能也会感兴趣,因为它使用 CSS 过渡来平滑您的汽车(或 Hansel and Gretel in我的情况)。

您可以查看 Brotkrumen Web App here 的完整文档代码。它包括一个 aaa_readme.txt

请注意,知道某人何时停止并不是直接的,必须通过启发式获得。我提供了一些秒参数,这些参数必须在没有有趣的移动变化的情况下经过,以计算出您已经停止以及停止了多长时间。试试 运行 Brotkrumen 在你的车里,当你在灯光下时它应该会成功(至少在珀斯他们会永远)并且会在你按下 Map Trip 或 Replay 按钮时显示给你。

模拟运动的一部分逻辑,可以很复杂,也可以很简单,比如在纬度/经度上添加随机运动。

  1. 你应该使用一个计时器,例如每秒触发一次(或任何其他频率),你订阅 "Timer" 事件,然后你写代码来移动汽车。

  2. 你需要在 Car Thing 上有一个 属性 我们可以称之为 "location" baseType LOCATION,这个 属性 应该设置为"logged" 然后你只需要用新位置更新位置 属性 (如果它从上一个位置移动 - 在你的模拟器代码上 - )。当然,您还必须设置 car Thing 的 ValueStream 属性 以获取位置更改的存储空间。

  3. 您可以使用 TW Marketplace Google 地图扩展,以便在记录的模拟中显示 Google 地图上的位置和路径。

  4. 在 TW 中设置位置 属性 类似于:

me.location = { 纬度:latitude_value, 经度:longitude_value, 海拔:elevation_value, 单位:"WGS84" }

希望对您有所帮助。