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

标签 ios opengl-es-2.0 openstreetmap vector-graphics mapbox

我正在研究一种解决方案,该解决方案将允许使用 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/

相关文章:

ios - FBSDKLog : starting with Graph API v2. 4、对/me/permissions的GET请求应包含显式的 "fields"参数

opengl-es - 在 OpenGL ES 2.0 中独立变换对象

ios - 可以用OpenGLES2而不是OpenGLES1重写GLPaint

java - 信息窗口中的 OSM 中心十

postgresql - OpenStreetMap 和 Hadoop

javascript - LeafletJS,如何删除绑定(bind)弹出窗口中带有按钮的标记

ios - 为什么我的 UI 元素在动画/缩放到屏幕外后无法正确重置?

ios - 当我创建 XMLDocument 的自动发布目标时,我的应用程序崩溃了

iphone - 如何通过 NSURLConnection sendAsynchronousRequest 取消异步调用?

c++ - glGetError() 总是在成功获取上下文后返回 GL_INVALID_OPERATION