【问题标题】:How to provide SUMO telemetry data?如何提供 SUMO 遥测数据?
【发布时间】:2017-05-24 08:21:51
【问题描述】:

我创建了一个 SUMO 模拟,其中包括一个城市的小地图和一些在该地图周围行驶的车辆。

进一步说,我有一个空的 Android 项目,其中初始化了 Google 地图。在应用启动时,它只显示以该城市为中心的 Google 地图。

现在,我想将每辆车的遥测数据转发到我的 Android 应用程序。最简单的方法是什么? 我想在我的地图上看到一些浮动标记...

我读过关于 TraCI 在模拟过程中进行交互的文章,但我没有成功让它运行。

【问题讨论】:

  • 想提供帮助,但需要一些额外的信息。您如何处理每个模型对象的“时间步长”?您是否只是暂停整个模型并转储当前位置?您是否正在运行模拟,然后尝试通过时间步长对象关联各个轨迹?在第一种模式中,步骤已经同步,因此让客户端进行 REST 调用以获取所有模型对象的“当前”位置,在客户端进行解析,并显示在 GoogleMap 视图上方的透明视图层上。

标签: android sumo


【解决方案1】:

通过阅读SUMO page,它说它会生成 xml 格式的输出文件,并且使用 python 可以将这些文件转换为 csv 文件。

这两种格式几乎可以被任何编程语言解析,以提取您想要显示的值或作为您想要处理和显示的内容的输入。

您可以通过 web 服务器将信息作为 web 服务提供给移动应用程序,例如可以用 php、java 或 asp 完成。

为了让网络服务器能够传递信息,它必须有要传递的数据。这可以通过以下方式完成:

  • 预处理 SUMO 生成的文件并将新文件上传到 Web 服务器 数据显示已经准备好。在这种情况下,您可以选择生成更易于使用的 JSON 格式的文件,或者保留 XML/CSV 格式。

  • 或者直接上传原始文件(XML/CSV)并在服务器上有一个Web应用程序 处理信息并交付结果。该处理可以通过服务器上的一些 cron 作业自动执行,也可以作为您必须构建的 web 服务 api 的一部分手动触发。

在这两种情况下,您都可以使用服务器上的数据库来存储数据,或许还可以提供一些历史记录功能。在这里你应该看看数据将如何被使用,如果只是为了下载熟信息,也许像 mongo db 这样的 No SQL 数据库会比像 mysql 这样的传统关系数据库更好的选择,这有两个选择。

文件的上传可以是手动的,也可以使用一些安全的 ftp 工具自动上传。

对于地图上的标记,即在移动应用端。这很容易通过 Google Maps API 实现。 Web 服务器所需的信息只是标记的纬度和经度。也可以从地址完成,但在这种情况下,需要一个额外的步骤来将其解码为 lat 和 long。

【讨论】:

  • 我想避免编写中间文件。谢谢
猜你喜欢
  • 2023-04-02
  • 1970-01-01
  • 2014-02-14
  • 2017-09-09
  • 1970-01-01
  • 2022-10-20
  • 2019-05-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多