5

我看到了一些方法:

1) 以编程方式使用 OpenGL 进行绘制。

2) 以编程方式使用 QuartzCore 和 CoreAnimation 进行绘制。

3) 在 AutoCad 中绘制地图,然后以某种方式将其连接到 iOS。

4) 使用 SVG 绘制地图。

需求支持寻路和gps导航。

对于前两种方式,我认为它在性能方式方面很昂贵,重绘所有缩放元素;而且我认为这种方式可能不支持 GPS 导航。

对我来说,使用 AutoCad 图示地图很难理解如何将其与图形\路径连接以进行寻路。

我的同事将使用 SVG 在 Web 上开发这个应用程序。我找到了它 - https://github.com/SVGKit/SVGKit,但仍然不知道它将如何支持寻路和导航。

我将不胜感激任何帮助。

4

1 回答 1

4

地图应用一般有两种:

A)他们显示地图,(有或没有用户位置)而不需要像导航系统那样计算路径(见 B 点)

B) 使用地图矢量并计算某些内容的应用程序:例如寻找最佳路径。最短连接,例如导航系统等。

A) 的应用通常不如 B) 复杂,因为向量可能有些不准确、没有连接、有小间隙、边缘之间没有逻辑等。

1) 要仅显示建筑地图,您只需要边列表。(边缘是一对坐标 (x1,y1) - (x2,y2)。你是怎么得到的。例如 MapInfo Professional 格式 mif/mid。
或者甚至你可以显示一个包含建筑物地图的 pdf。对内置的 PDF 视图,(也有 SVG,但更难)。

如果它不是相对地图,而且是使用参考坐标系定位的地图,例如纬度/经度 (WGS84),事情会变得更加复杂。
在这种情况下,您将使用工具(mapInfoProfessional,导入 AutoCad DXF 文件,并在房子的角落应用 3 个 GPS 测量参考点,并将其转换为 LatLong WGS84 坐标系统。
使用 ios,您无法测量这 3 个点,因为您无法平均位置,当您站在房子的一个角落静止时,ios会停止发送。如果您居住在谷歌卫星照片具有高分辨率的地区,您可以尝试从谷歌地球卫星照片中提取位置。(但是这可能违反该卫星照片提供商的许可条件(主题:派生数据))

最后,您现在有了 Lat Lon 坐标系中的边列表。

对于显示,我个人会使用 1) OpenGL) 或 2) Quartz2D。

现在是路径查找部分。

可能您需要第二张“地图”来定义建筑物内的可能路径。此结构必须是连接图(具有连接邻居的点)。电脑游戏就是这样做的。(有些甚至允许您在开发者模式下显示该路径)

可以在平面图的不同层中绘制路径。但这条路有更高的要求:不允许有缝隙,都必须完美连接。

将该层称为“路径”并将其导出为自己的计划。
现在只使用这个路径层,导入并创建一个具有连接邻居的节点图。

使用 Dijkstra 算法搜索最短路径。

于 2013-02-14T21:01:06.153 回答