在 android 中扩展 google map api v2 的离线矢量 TileProvider

Posted

技术标签:

【中文标题】在 android 中扩展 google map api v2 的离线矢量 TileProvider【英文标题】:offline vector TileProvider that extends google map api v2 in android 【发布时间】:2015-01-31 14:46:47 【问题描述】:

我知道有一些 android 地图库可以从 OSM 渲染基于矢量的图块(*.map 等)。但我没有找到任何只有引擎以图形方式呈现矢量切片并将其作为 TileProvider 返回到适用于 Android 的 Google maps api v2 的库。

对于离线光栅图块:我知道如何处理光栅图块 (osmdroid jpg 文件)。好的和工作的例子: TileProvider using local tiles.

有人知道在哪里可以找到矢量图块吗?

亲切的问候, 托尼

【问题讨论】:

您能更具体地说明您感兴趣的格式吗? OSM 格式列表在这里:wiki.openstreetmap.org/wiki/OSM_file_formats @KevinKrumwiede:我其实不在乎哪个。如果需要指定,我会使用可以在网络上找到数据并按国家/地区排序的数据,以便在更多统计数据涉及特定区域时进行更新。如果你做了一些研究,你的经验和知识将不胜感激。我真的很喜欢“我的地图”功能,但它们有自己的格式 *.mwm。 Mapsforge 使用 *.map 格式并有按国家排序的地图下载服务器 (download.mapsforge.org/maps)。 【参考方案1】:

如果您可以找到一个库来渲染矢量切片,或者找到足够的格式文档来编写您自己的渲染器,那么将其转换为TileProvider 非常容易。 Tile#data 需要是supported image formats 之一中的压缩图像。获得Bitmap 后,使用Bitmap#compress(...) 将数据写入ByteArrayOutputStream,然后使用ByteArrayOutputStream#toByteArray() 获取Tile 的数据。

【讨论】:

嗨,我知道应该如何处理 TileProvider 类,但正如你所说,我需要一些矢量切片的渲染代码。如果您或其他人可以提供一些指示,将不胜感激! @toni 我建议你搜索一个可以渲染你想要使用的矢量格式的现有库。如果你找不到,或者你无法弄清楚你找到的信息,那么就提出一个关于渲染该矢量格式的新问题。这真的与谷歌地图无关。

以上是关于在 android 中扩展 google map api v2 的离线矢量 TileProvider的主要内容,如果未能解决你的问题,请参考以下文章

无法通过 gradle 导入 com.google.maps.android:android-maps-utils

打开eclipse后应该怎样安装 Google map API ?在Android sDK Manager列表中没有找到Google map API 这应该

com.google.android.maps 在 Android Studio 中不存在

android google map supportmap片段无法在片段中初始化

如何在现有的旧版Android项目中使用最新的API添加Google Map?

如何在 Google Map Api V2 Android 中搜索?