我想知道,如何根据文档https://osmdroid.github.io/osmdroid/Offline-Map-Tiles.html将osmdroid默认路径更改为extSdCard路径。 可以使用: Configuration.getInstance()。SetOsmdroidBasePath
我相信在运行项目时,它会自动启动: StorageUtils.getStorage()。GetAbsolutePath(),“ osmdroid”
我尝试使用下面的命令,但我的地图未显示图块
Configuration.getInstance().setOsmdroidBasePath(new File("/mnt/extSdCard/osmdroid"));
当我使用以下代码调试代码时:Configuration.getInstance().GetOsmdroidBasePath().GetPath()
它显示了正确的路径。
是否需要重新加载我的地图?
答案 0 :(得分:1)
如果在创建地图视图之前用户已授予运行时存储权限,则它应该可以正常工作。您可能需要检查以确保可以写入该路径。 Android很奇怪,通常只是因为路径可用并不意味着您可以写入它。 StorageUtils
类可以帮助您找到可用的路径,并且应该能够确定哪个路径是可写的。但是,这是不完善的。路径因设备而异,结果可能无法预测。
答案 1 :(得分:0)
对于OSM 6.x版,您可以使用以下代码
@Override
public void onCreate() {
...
org.osmdroid.config.IConfigurationProvider osmConf = org.osmdroid.config.Configuration.getInstance();
File basePath = new File(getCacheDir().getAbsolutePath(), "osmdroid");
osmConf.setOsmdroidBasePath(basePath);
File tileCache = new File(osmConf.getOsmdroidBasePath().getAbsolutePath(), "tile");
osmConf.setOsmdroidTileCache(tileCache);
...
}