Osmdroid:如何从我自己的位图(图块)创建和加载地图?

Posted

技术标签:

【中文标题】Osmdroid:如何从我自己的位图(图块)创建和加载地图?【英文标题】:Osmdroid: How I can create and load a map from my own bitmaps(tiles)? 【发布时间】:2011-12-31 11:59:19 【问题描述】:

我开始使用 Osmdroid,我想使用这项技术来显示有关 F1 赛道的地图。我有一张大图,我可以把它剪成小块。

我可以修改osmdroid库来上传这些图片吗?

我想将这些位图(图块)保存在我的资产文件夹中。

我很迷茫如何做到这一点。

我使用这种方式是因为 android 通常在我尝​​试显示这张完整的全尺寸图片时会出现内存错误。如果我只显示图像的一些图块(取决于缩放),也许我的应用会运行得更好?

提前致谢!

【问题讨论】:

【参考方案1】:

Osmdroid 使用一种系统,在该系统中,世界地图被划分为图块。平铺通常具有相同的像素大小,这意味着您使用的缩放级别越大,“覆盖世界”所需的平铺就越多。每个图块都有其坐标 (x,y) 和设计使用的缩放级别。

可以在 osmdroid 中使用各种自定义 tile 源。看看this class in osmdroid - 它创建了一些平铺源的实例。您可以使用相同的机制创建自己的图块源。但是,所有这些都使用了我上面描述的世界的这些 x,y 坐标。 Osmdroid 将询问您的图块来源,例如缩放级别为 10 的图块 10,10。如果您能够创建地图的图块以使用此坐标系统,那么它将起作用。但是,对于 F1 赛道等自定义地图,可能很难做到这一点。

我对此也很感兴趣,可能会在不久的将来尝试使用osmdroid的平铺机制来显示一些大图像。如果你成功了,请告诉我:)。

【讨论】:

好的,我正在改进,但我对这个主题有很多问题:现在,我可以加载我的自定义位图并且我可以看到地图。只有我使用一种缩放级别。我现在的问题是我如何知道地理坐标是我正在绘制的每一块瓷砖。这个任务快把我逼疯了!当我有可靠的东西时,我会发布它。如果有人有什么建议,请告诉我。【参考方案2】:

我认为这里有两个问题:

    如何从位图文件创建 osmdroid 格式的地图图块。 如何将它们加载到 osmdroid 中

对于问题 1,您可以使用工具来创建图块。

http://www.maptiler.org/ 可用于从位图中提供位图及其边界坐标的位图创建图块。 http://mobac.sourceforge.net/ 从在线地图创建地图集,它可以创建 osmdroid zip 地图集。不确定您是否可以使用它来创建您的 osmdroid zip 格式。 如果 Mobile Atlas 创建者没有帮助,如果您的源位图不是太大,您可以手动创建 zip。

对于问题 2:

我扩展了一个 osmdroid 类以使用资产文件夹在 apk 中部署地图。看这里: https://***.com/a/14832770/891479

【讨论】:

以上是关于Osmdroid:如何从我自己的位图(图块)创建和加载地图?的主要内容,如果未能解决你的问题,请参考以下文章

Osmdroid 地图图块不显示

osmdroid - 显示更大的图块

osmdroid 地图图块显示空白

我可以在 osmdroid 中使用 Google 地图图块吗?

如何在用户端下载 osmdroid 瓦片?

如何通过将地图切片图像保存到 sqlite 数据库来使用 osmdroid 实现离线地图?