我正在为android开发一个室内导航程序,但我一开始就被卡住了:
如何用java表示地图
我更喜欢一种可以让我轻松应用Dijkstra算法的方式。
注意:我需要这个程序来了解每个房间的大小以及出入口在哪里。
编辑:我正在寻找一个在BL中使用的对象,而不是UI
Android有一个名为mapView的内置GUI元素,您可以将其添加到应用程序的屏幕中。这是一个谷歌地图,将要求你获得你的应用程序API密钥。你可以在上面添加覆盖,并根据纬度和经度在地图上定位点(我认为它也支持其他方法),这些点可以用于Dijkstra的算法。希望这能有所帮助,祝你好运。
我认为,您所描述的是一个扩展拓扑图(其中您对节点的绝对位置进行了估计)。因此,您基本上需要一个组件,该组件可以绘制带有附加到节点的位置的图形。此外,你可能想画一些附加的东西(比如无线网络连接的热图、蓝牙设备或任何你用来估计位置和收集环境信息的东西)。您也在处理SLAM问题。
我不知道有任何现有的组件可以完成视觉任务,但也许你可以在谷歌上找到一些东西。不过我并不推荐它。我只会创建自己的组件(使用TextView
并在上面绘制我的东西)。它更灵活,不需要太多努力,而且您可以选择功能和数据格式,这在这种情况下非常有用。。。
一旦你已经运行了所有的其余部分(这是很多!),你仍然可以决定寻找一些花哨的组件,甚至可以集成谷歌地图,能够缩放等等。