4

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

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

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

我读过关于 TraCI 在模拟期间进行交互的信息,但我没有成功让它运行。

4

1 回答 1

1

通过阅读SUMO 页面,它说它生成 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。

于 2017-06-02T13:49:34.703 回答