OSMdroid:如何从zip存档加载离线地图 - MapTileFileArchiveProvider

时间:2011-10-03 11:04:43

标签: android map archive offline osmdroid

我真的需要OSMdroid库的一些帮助。将映射存储在sdcard中作为zip文件很有用。此外,可以解压缩地图,并可以直接使用图像文件进行更快的渲染。

当磁贴 unziiped .tile扩展并且存储文件夹中时,我设法从我的SD卡加载磁贴> / SD卡/ osmdroid /瓷砖/ Mapnik的/... 为了创建我的地图,我使用了 Mobile Atlas Creator OSMAND磁贴存储格式。

我在网上阅读了一些声称存储包含磁贴的zip文件存储在 / sdcard / osmdroid 中的教程,然后将从zip加载离线地图。但它对我不起作用。

  1. 有没有人设法让它发挥作用?如果是这样的话?

  2. 我是否需要实例化自己的MapTileFileArchiveProvider?如果是这样,我该怎么做?有什么例子吗?

2 个答案:

答案 0 :(得分:6)

ZIP中的文件必须采用以下形式:

Z/X/Y.png

如果你将Y.tile文件重命名为Y.png,请将它们压缩并将zip文件放在/ sdcard / osmdroid /中,这应该可行。

答案 1 :(得分:0)

只是对user976933的答案进行了更正或补充,zip还应该包含tilesource的名称作为基本目录,zip中所需的结构是:

tilesourcename / Z / X / Y

加载切片的代码位于BitmapTileSourceBase:

@Override
public String getTileRelativeFilenameString(final MapTile tile) {
    final StringBuilder sb = new StringBuilder();
    sb.append(pathBase());
    sb.append('/');
    sb.append(tile.getZoomLevel());
    sb.append('/');
    sb.append(tile.getX());
    sb.append('/');
    sb.append(tile.getY());
    sb.append(imageFilenameEnding());
    return sb.toString();
}

public String pathBase() {
    return mName;
}