iOS中基于实时矢量的OSM渲染器(使用OpenGL ES)

Cal*_*lin 21 vector-graphics openstreetmap ios opengl-es-2.0 mapbox

我正在寻找一种解决方案,允许使用OpenStreetMap数据在iOS中渲染基于2D顶视图矢量的地图,而不是使用来自服务器的预渲染切片.与iOS6 +中的Apple和Google Maps类似.

我对这个问题进行了广泛的研究,但没有找到太多的信息.
有许多iOS应用程序可以执行此操作,但没有关于它们如何实现它的信息.其中几个应用程序是:

前两个应用程序的工作方式类似于Apple和Google Maps.每当缩放变化时,地图都会实时绘制.
最后一个似乎使用了略有不同的方法.它以特定缩放级别呈现矢量数据并创建切片,然后将切片用作从切片服务器下载的普通切片.因此渲染引擎实际上可以是Route-Me库的tile源,但是不是下载tile而是动态渲染它们.

第一种方法是优选的.

[问]我猜一旦OpenGL ES渲染器到位,就可以在方法之间切换.我的意思是你可以使用渲染器作为Route-Me的源来创建磁贴,或者你可以将它用作实时抽屉,类似于游戏.我对吗?

我找到的最接近的解决方案是OpenStreetPad.但是,它使用的是Core Graphics而不是OpenGL ES,因此渲染不是硬件加速的.

Mapbox表示他们正在研究矢量图块,他们可能会提供一个iOS渲染解决方案,但是它可能会使用Mapnik,因此我不确定它的效率如何.自2013年中期以来,没有ETA.

[问]您是否了解其他任何图书馆,论文,指南,示例或其他有关如何处理此问题的有用信息?基本上如何处理OSM数据以及如何实际使用OpenGL ES/GLKit在设备上绘制数据.也许一些做过它的人可以分享一些东西?

mou*_*ird 5

旧问题,但有一个新答案。WhirlyGlobe-Maply将在iOS上渲染基于图块的矢量地图。 http://mousebirdconsulting.blogspot.com/2014/03/vector-maps-introduction.html


sca*_*cai 1

有一个适用于 iOS 的基于 OSM 的应用程序列表。它还包括一些开源项目,例如Navit。Navit 似乎使用 SDL/OpenGL 渲染地图。有关更多信息,请参阅Navit iOS wiki 页面。