我目前正在尝试开发一个使用osm离线地图的Android应用程序。 我想提供大量的离线地图。这就是为什么我决定使用我的Galaxy S2的外部SD卡作为磁贴源的文件夹。
不幸的是,我无法在eclipse的ddms-file-explorer中找到外部SD卡。 我只找到了内部的sd。
我使用Windows资源管理器将osmdroid.zip复制到外部sd,但我的应用程序找不到它。 我还写了我自己的osmdroid颠覆作为库来选择一个特定的路径,但没有结果。可能,我没有尝试适当的路径。
我希望,那里有人可以形容我,如何使用外部sd作为瓷砖的存储空间。
答案 0 :(得分:2)
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 /缩放级别/...
答案 1 :(得分:0)
在Galaxy S2中我通常位于/sdcard/external_sd
的外部SD卡。
因此,您可以通过指定其路径来打开文件:
File myFile = new File(/sdcard/external_sd/osmdroid.zip);
然后你可以正常阅读文件,但在你的情况下你可能想用ZipFile
来阅读zip的内容。