Osmdroid: 我该如何使用自己的位图(瓷砖)创建和加载地图?

6
我开始使用Osmdroid,希望利用该技术展示F1赛道的地图。我有一张大图片,可以将其分割成小块瓦片。

我能否修改osmdroid库以上传这些图片?

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

我对如何实现此功能感到困惑。

我使用这种方式是因为在android上,当我尝试展示完整的全尺寸图片时通常会出现内存错误。如果我只展示图像的一些瓦片(取决于缩放比例),可能我的应用程序会更好地运行?

提前感谢您的帮助!

2个回答

2

Osmdroid使用一种将世界地图划分为瓦片的系统。这些瓦片通常具有相同的像素大小,这意味着你使用更大的缩放级别时,需要更多的瓦片来"覆盖世界"。每个瓦片都有它的坐标(x,y)和一个设计用于使用的缩放级别。

在osmdroid中可以使用各种自定义瓦片源。请查看osmdroid中的这个类 - 它创建了一些瓦片源实例。你可以使用相同的机制创建自己的瓦片源。然而,所有这些都使用我上面描述的世界的x,y坐标。Osmdroid会请求你的瓦片源例如在缩放级别10中的10,10瓦片。如果你能够创建与此坐标系统兼容的地图瓦片,则它将正常工作。但是,对于自定义地图(如F1赛道),这可能很难做到。

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


好的,我在进步,但是我在这个主题上遇到了很多问题:现在,我可以加载我的自定义位图并看到地图。只是我只使用了一个缩放级别。我的问题现在是如何知道我正在绘制的每个瓦片在哪个地理坐标中。这项任务让我疯狂!当我有了实质性的东西,我会发布出来。如果有人有建议,请告诉我。 - Juan Pedro

1
我认为这里有两个问题:
  1. 如何从位图文件创建osmdroid格式的地图瓦片。
  2. 如何将它们加载到osmdroid中。
对于问题1,您可以使用工具创建瓦片。
  • http://www.maptiler.org/ 可用于从位图创建瓦片,并提供位图和边界坐标。
  • http://mobac.sourceforge.net/ 从在线地图创建Atlas,可以创建osmdroid zip atlas。不确定是否可以用它来创建osmdroid zip格式。
  • 如果Mobile Atlas creator没有帮助,也许您可以手动创建zip,如果您的源位图不太大。
对于问题2:

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接