我创建了一个SUMO模拟,包括一个城市的小地图和一些在该地图上行驶的车辆。
此外,我有一个空的Android项目,其中初始化了Google地图。在应用开始时,它只显示以该城市为中心的Google地图。
现在,我想将每个车辆的遥测数据转发到我的Android应用程序。最简单的方法是什么? 我想在我的地图上看到一些漂浮的标记......
我已经读过关于TraCI在模拟过程中进行交互的内容,但我没有成功让它运行。
答案 0 :(得分:1)
通过阅读SUMO page,它表示它以xml格式生成输出文件,使用python可以将这些文件转换为csv文件。
这两种格式可以被大多数编程语言解析,以提取您想要显示的值或作为您想要处理和显示的内容的输入。
您可以通过Web服务器将信息提供给移动应用程序,例如可以在php,java或asp中完成的Web服务。
要让网络服务器能够传递信息,必须提供数据。这可以通过以下方式完成:
预处理生成的SUMO文件,并使用该文件将新文件上传到Web服务器 数据显示已准备好。在这种情况下,您可以选择以JSON格式生成文件,这样更容易使用,或保留XML / CSV格式。
或直接上传原始文件(XML / CSV)并在服务器上安装Web应用程序 处理信息并提供结果。处理可以通过服务器上的某个cron作业自动执行,也可以作为您必须构建的webservice api的一部分手动触发。
在这两种情况下,您都可以使用服务器上的数据库来存储数据,并可能提供一些历史记录功能。在这里你应该看一下如何使用数据,如果它只是为了下载熟食信息,那么像mongo db这样的No SQL数据库将比传统的关系数据库(如mysql)提供两个选项更好。
使用一些安全的ftp工具可以手动或自动上传文件。
对于地图上的标记,即移动应用程序端的标记。这可以通过Google Maps API轻松实现。网络服务器所需的信息只是标记的纬度和经度。它也可以从一个地址完成,但在这种情况下还有一个额外的步骤可以解码为lat和long。