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

Javascript 如何模拟物联网物体的位置跟踪?,javascript,google-maps,google-maps-api-3,iot,thingworx,Javascript,Google Maps,Google Maps Api 3,Iot,Thingworx,我需要在我的物联网平台Thingworx中模拟我的“物联网东西”的位置跟踪。例如:如果我有一辆车作为一个东西,它有两种模式移动和停止。我需要模拟汽车处于“移动”状态时不断变化的纬度和经度,并存储生成的坐标,以便以后可以在mashup中的googlemap小部件上显示它们。同样,如果汽车停止,则应显示上次停止的位置。我有以下问题: 我如何做到这一点?如中所示,我应该创建并使用服务或订阅(使用速度值作为触发器) 这种功能需要什么样的代码段 我应该使用谷歌api吗 另外,如何在具有数据类型“Locat

我需要在我的物联网平台Thingworx中模拟我的“物联网东西”的位置跟踪。例如:如果我有一辆车作为一个东西,它有两种模式移动和停止。我需要模拟汽车处于“移动”状态时不断变化的纬度和经度,并存储生成的坐标,以便以后可以在mashup中的googlemap小部件上显示它们。同样,如果汽车停止,则应显示上次停止的位置。我有以下问题:

  • 我如何做到这一点?如中所示,我应该创建并使用服务或订阅(使用速度值作为触发器)
  • 这种功能需要什么样的代码段
  • 我应该使用谷歌api吗
  • 另外,如何在具有数据类型“Location”的变量中存储lat/long的变化值

  • 谢谢

    你的要求不容易用几句话来解释!最好的方法是向您展示一个使用GoogleMapAPI的示例,您可能会对它感兴趣,因为它使用CSS转换来平滑您的汽车(在我的例子中是Hansel和Gretel)

    您可以查看Web应用程序的完整文档化代码。它包括一个aaa_readme.txt文件


    请注意,知道某人何时停止并不是一件简单的事情,必须通过试探性的方式获得。我提供了一个秒数参数,它必须经过一个有趣的运动变化才能计算出你已经停了多久。试着在你的车里运行Brotkrumen,当你在灯光下(至少在珀斯,这会持续很久),当你按下地图行程或重放按钮时,它会显示给你。

    模拟运动的逻辑的一部分,可以是你想要的复杂程度,也可以是简单的随机添加运动到纬度/经度

  • 你应该使用一个定时器,例如每秒触发一次(或任何其他频率),然后你订阅“定时器”事件,然后在那里你编写代码来移动汽车

  • 你需要在汽车上有一个属性,我们可以称之为“location”,它是baseType location中的哪一个,这个属性应该设置为“logged”,然后你只需要用新的位置更新location属性(如果它从上一个位置开始移动-在你的模拟器代码上-)。当然,您还必须设置car Thing的ValueStream属性,以便为位置更改获取存储

  • 您可以使用TW Marketplace Google Maps extension,从记录的模拟中显示Google Maps上的位置和路径

  • 在TW中设置location属性类似于:

  • me.location={ 纬度:纬度值, 经度:经度值, 高程:高程_值, 单位:“WGS84” }


    希望有帮助。

    顺便说一句,重写优步可能需要比你想象的更长的时间;-)您好,我正在尝试做一些类似于您建议的事情:我正在编写一个通过速度更改启用的订阅,然后我随机尝试将值增加0.0001或类似的值。我面临的问题是Thingworx存储了一个垃圾/初始值,即使我尝试重置它,它也不会改变它的值。你能告诉我如何以正确的格式增加lat/long的值,或者这个问题背后到底有什么问题吗?嗨,Rushar,你指的是值,你指的是我。位置?如果是这样的话,你只需要用新的值来设置它,你不应该有任何问题,位置应该设置为非只读,当然,并记录以记录位置更改。嘿,谢谢你的回复。是的,我确实设置了新的值。价值流似乎没有接收到它,但它在properties列和mashup中显示了正确的值。然而,我的另一个问题是,如果我想在下一次订阅运行时增加某个对象的纬度和经度,那么格式--me.location={纬度:纬度\值1,经度:经度\值+1,海拔:海拔\值+1,单位:“WGS84”}正确吗?如果不是,那么在每次订阅运行时,可以使用什么语法来增加lat/long的值?是的,格式是正确的,但是如果在纬度、经度和海拔上添加1,它将移动得非常远。嗨,Carles,它现在可以工作,但没有正确完成。我必须给出高程=0,这样它只会改变相关的纬度和长度值。我觉得location基类型匹配所有三个值,如果某个特定的组合不存在,它将开始显示垃圾值(或者可能是Lat/Long/Ele的正确组合),这在当时当然不需要。然而,底线是您前面提到的语法是有效的。谢谢