我准备了this simple project测试 osmdroid 的离线 map 功能.在第一步中,我使用 Internet 连接下载图 block 。一切都按预期工作。以下代码 fragment 显示了包含 map View 的 Activity 的设置。
public class MainActivity extends Activity {
public static final GeoPoint BERLIN = new GeoPoint(52.516667, 13.383333);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MapView mapView = (MapView) findViewById(R.id.mapview);
mapView.setClickable(true);
mapView.setBuiltInZoomControls(true);
mapView.setMultiTouchControls(true);
mapView.setUseDataConnection(true);
mapView.setTileSource(TileSourceFactory.MAPNIK);
IMapController mapViewController = mapView.getController();
mapViewController.setZoom(15);
mapViewController.setCenter(BERLIN);
}
}
现在我想手动提供一个包含图 block 位图的存档文件。这些是我为离线模式做准备的步骤:
- 我压缩了 sdcard 上的现有文件夹,可以在
/mnt/sdcard/osmdroid/tiles/
中找到。 - 我将生成的
Mapnik.zip
放在/mnt/sdcard/osmdroid/
的上一层。 - 我删除了
/mnt/sdcard/osmdroid/tiles/Mapnik
中的所有缓存图 block 。
现在我关闭手机上的无线连接并重新启动应用程序。 没有显示 map 图 block 。为什么?
最佳答案
你应该使用 tile packager创建您的 zip,或 mobile atlas creator .但是,如果您将 zip 中的所有 *.tile 文件重命名为 *.png,它应该可以工作(未测试)。
关于android - 如何为 osmdroid 准备离线 map 的 map 图 block 存档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23296285/