我正在研究一种解决方案,它允许在iOS中使用OpenStreetMap数据来渲染基于2D俯视图矢量的地图,而不是使用服务器上预先渲染的图块。类似于iOS6+中的苹果和谷歌地图。
我对这个问题做了广泛的研究,但没有发现太多的信息。
有许多iOS应用程序可以做到这一点,但没有关于它们如何实现的信息。其中几个应用程序是:
前两个应用程序的工作原理与Apple和Google Maps类似。每当缩放发生变化时,都会实时绘制地图。
最后一个似乎使用了略有不同的方法。它以特定的缩放级别呈现矢量数据,并创建瓦片,然后将其用作从瓦片服务器下载的普通瓦片。因此,渲染引擎实际上可以作为Route-Me库的瓦片源,但它不是下载瓦片,而是即时渲染它们。
第一种方法是首选的。
问:我猜,一旦OpenGL ES渲染器就位,就可以相当容易地在方法之间进行切换。我的意思是,您可以使用渲染器作为Route-Me的源,以创建瓷砖,或者您可以将其用作实时抽屉,类似于游戏。我说的对吗?
我找到的最接近的解决方案是OpenStreetPad。但是,它使用核心显卡而不是OpenGL ES,因此渲染不是硬件加速的。
Mapbox表示,他们正在开发矢量瓦片,他们可能会提供一个用于渲染的iOS解决方案,但它可能会使用Mapnik,所以我不确定这会有多有效。从2013年年中开始就没有预计到达时间了。
问:您是否知道其他图书馆、论文、指南、示例或其他一些关于如何实现这一点的有用信息?主要是如何处理操作系统数据,以及如何实际使用OpenGL ES / GLKit在设备上绘制数据。也许一些做过的人可以分享一些东西?
发布于 2014-03-24 04:56:27
老问题,但有了新的答案。WhirlyGlobe-Maply将在iOS上渲染基于瓦片的矢量地图。http://mousebirdconsulting.blogspot.com/2014/03/vector-maps-introduction.html
发布于 2014-08-22 22:22:57
skobbler的ForeverMap 2和他们目前的GPS导航和地图应用程序所使用的技术现在是按使用付费的。查看他们的developer platform。注意:他们也有一个免费的层,可以用来开发/启动小型应用程序。
他们使用OpenGL和“矢量数据瓦片”来渲染地图。此矢量数据瓦片包含有关道路几何图形(以便您可以拥有路线)、POI数据和其他地图要素的信息。(例如,边界限制)。
发布于 2013-05-08 20:20:44
这里有一个OSM-based applications for iOS的列表。它还包括一些开源项目,例如Navit。Navit似乎使用SDL/OpenGL渲染贴图。有关详细信息,请参阅Navit iOS wiki page。
https://stackoverflow.com/questions/16304510
复制相似问题