【问题标题】:Adding vector map data to iOS GPS app. Real Time vector graphics rendering将矢量地图数据添加到 iOS GPS 应用程序。实时矢量图形渲染
【发布时间】:2011-06-05 01:54:32
【问题描述】:

我们正在开展一个项目,将来自 OSM 和 NAVTEQ 的矢量地图数据添加到 iOS GPS 应用程序中。

目前,该应用程序显示光栅地图图像并提供移动地图导航功能。我们现在想通过集成矢量图更进一步,但不知道从哪里开始。

具有 GPS 导航经验的开发人员的指导会很棒。

以下是要求的简要说明:

目标设备: IOS。为了将来与其他平台的兼容性,首选 C++ 作为内核。

数据集成和打包: 地图数据来源: - NAVTEQ - 打开街道地图

文件格式: - 考虑设备限制的移动设备的理想选择。 - 要么找到已经建立的格式,要么在内部创建一个。

编译: - 确定源数据的格式(Shp、MapInfo 等) - 将源格式编译为所需格式。

地图渲染引擎: 地图显示: - 矢量地图视图将与当前的光栅地图视图分开。 - 将数据实时渲染成线、点、多边形等。不接受平铺或预渲染。 - 2D 鸟瞰图。 (3D 计划用于未来的版本)。 - 阴影浮雕以说明海拔。 - 显示用户生成的数据,如路线、轨迹日志、航点。 - 一个规模,例如500米。 - 快速的性能对于提供更好的用户体验至关重要。 - Tom Tom iOS 应用程序就是很好的例子。 地图互动: - 平移、缩放、旋转。 - 利用多点触控功能。 搜索 - 地址、位置、POI(地理编码) - 位置地址(反向地理编码)

样式表 - 轻松自定义已显示地图的外观。 - 每个元素都可以自定义。

我们想知道从哪里开始我们的研究。有哪些库和 SDK 值得花时间研究?

【问题讨论】:

    标签: ios mapping gis


    【解决方案1】:

    根据我的经验做一些笔记:

    源数据格式:您可能希望能够从 ESRI shapefile 和 OpenStreetMap(以 XML 或更紧凑但等效的二进制格式提供)导入数据。 NAVTEQ 数据可以作为 ESRI shapefile 获得。可以通过处理 USGS 高度数据 (http://dds.cr.usgs.gov/srtm/) 获得阴影地形。

    2D 与 3D:从一个到另一个的步骤很大。 2D 数据几乎总是以纬度和经度的形式提供并投影到平面上:谷歌地图和 OpenStreetMap 使用非常简单但被嘲笑的球形墨卡托投影。迁移到 3D 需要对坐标系做出决定——投影平面加高度与基于地球形状的真实 3D——以及可能涉及细节级别的问题。一个好的方法可能是将地球的形状(山丘和山谷)绘制为三角形网格,然后将地图的其余部分作为纹理覆盖在上面。您可能需要考虑“两个半 D” - 使用透视变换来显示地图,就像从高处查看一样。

    库:有很多地图渲染库here,包括商业和非商业(披露:我的就是其中之一)。其中许多库都有用于自定义地图外观的样式表系统。

    一个非常好的开源渲染库(不是我的)是 Mapnik,但我不确定它是否会很容易地移植到 iOS。但是,阅读 Mapnik 和其他渲染库如何工作以了解问题是一个非常好的主意。 OpenStreetMap wiki 是了解该领域更多信息的好门户。

    地图上的文本渲染几乎总是使用FreeType 完成,这是一个具有无限制许可的开源光栅化库。

    【讨论】:

      【解决方案2】:

      试用 MapBox 库:http://mapbox.com/

      【讨论】:

      【解决方案3】:

      OSM Wiki 上有一个列表,但遗憾的是它不完整。

      我知道的两个向量库是 CartoType(您可以在较新的 Lonely Planet Guides 中看到它们正在使用)和 Skobbler - Skobbler 没有现成的产品,但我相信他们会整合他们的为您提供矢量地图和路线。

      OSM StackExchange上也有相关问题

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-21
        • 1970-01-01
        相关资源
        最近更新 更多