繁体   English   中英

如何使用保存在外部SD上的OSM离线地图?

[英]How to use OSM offline maps saved on external SD?

我目前正在尝试开发一个使用osm离线地图的Android应用程序。 我想提供大量的离线地图。 这就是为什么我决定使用我的Galaxy S2的外部SD卡作为磁贴源的文件夹。

不幸的是,我无法在eclipse的ddms-file-explorer中找到外部SD卡。 我只发现了内部的SD。

我使用Windows资源管理器将osmdroid.zip复制到外部sd,但我的应用程序找不到它。 我还写了我自己的osmdroid颠覆作为库来选择一个特定的路径,但没有结果。 可能,我没有尝试适当的路径。

我希望,那里有人可以形容我,如何使用外部sd作为瓷砖的存储。

osmdroid默认使用外部sdcard来加载离线地图,因为它们是从OpenStreetMapTileProviderConstants中定义的osmdroid目录加载的:

/** Base path for osmdroid files. Zip files are in this folder. */
public static final File OSMDROID_PATH = new File(Environment.getExternalStorageDirectory(),
        "osmdroid");

要加载地图,您可以使用MapTileFileArchiveProvider或直接使用MapTileFileArchiveProvider本身的MapTileProviderBasic。

这里有一个很好的解释osmdroid如何使用离线地图: https ://stackoverflow.com/a/8286276/891479

在您的应用中使用MapTileProviderBasic。 这里有一些例子: http//www.androidadb.com/class/ma/MapTileProviderBasic.html

如果您的磁贴未加载,这也可能是因为您的zip中的目录结构错误,请不要忘记将磁贴源名称设置为基本目录:

/ tilesourcename /缩放级别/ ...

在Galaxy S2中,外部SD卡通常位于/sdcard/external_sd 因此,您可以通过指定其路径来打开该文件:

File myFile = new File(/sdcard/external_sd/osmdroid.zip);

然后你可以正常读取文件,但在你的情况下你可能想使用ZipFile来读取zip的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM