我正在研究一种解决方案,该解决方案将允许使用 OpenStreetMap 数据在 iOS 中渲染基于矢量的二维顶 View map ,而不是使用来自服务器的预渲染图 block 。类似于 iOS6+ 中的 Apple 和 Google map 。
我对此事进行了广泛的研究,但没有找到太多信息。
有许多 iOS 应用程序可以执行此操作,但没有关于它们如何实现的信息。其中一些应用程序是:
前 2 个应用程序的工作方式类似于 Apple 和 Google map 。每当缩放比例发生变化时, map 都会实时绘制。
最后一个似乎使用了稍微不同的方法。它以特定的缩放级别呈现矢量数据并创建切片,然后将其用作从切片服务器下载的普通切片。因此,渲染引擎实际上可以是 Route-Me 库的图 block 源,但不是下载图 block ,而是动态渲染它们。
首选第一种方法。
[Q] 我想一旦 OpenGL ES 渲染器就位,就可以很容易地在方法之间切换。我的意思是您可以使用渲染器作为 Route-Me 的来源来创建图 block ,或者您可以将它用作实时抽屉,类似于游戏。我说得对吗?
我找到的最接近的解决方案是 OpenStreetPad .但是,它使用的是 Core Graphics 而不是 OpenGL ES,因此渲染不是硬件加速的。
Mapbox 表示他们正在研究矢量图 block ,他们可能会提供 iOS 渲染解决方案,但它可能会使用 Mapnik,所以我不确定效率如何。自 2013 年年中以来没有预计到达时间。
[Q] 你知道关于如何处理这个问题的任何其他图书馆、论文、指南、示例或其他一些有用的信息吗?基本上如何处理 OSM 数据以及如何实际使用 OpenGL ES/GLKit 在设备上绘制该数据。也许一些做过的人可以分享一些东西?
最佳答案
老问题,但有一个新的答案。 WhirlyGlobe-Maply 将在 iOS 上渲染基于图 block 的矢量 map 。 http://mousebirdconsulting.blogspot.com/2014/03/vector-maps-introduction.html
关于ios - iOS 中基于实时矢量的 OSM 渲染器(使用 OpenGL ES),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16304510/