Osmdroid,使用不同的离线地图

Osmdroid, use of different offline maps

我有一个带有 Osmdroid-MapView 的应用程序,其数据存储在设备上的地图外:/mnt/sdcard/osmdroid/tiles.zip

zip 文件的结构:

+-- MapquestOSM
+-- 10
¦ +-- 550
¦ +-- 335.png
...

我的目标:我想存储不同的离线地图,然后某个就可以了 在程序中选择。

我的问题:我必须以什么形式将地图存储在 osmdroid 文件夹中,我如何告诉 Osmdroid 我的选择?

部分来源:

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.MAPQUESTOSM);

  IMapController mapViewController = mapView.getController();
  mapViewController.setZoom(15);
  mapViewController.setCenter(BERLIN);
}

请帮忙!

问候维基

不幸的是,您不能真正强制 osmdroid 加载一个特定的 zip。

您可以使用 XYTileSource 名称,因为它必须与 zip 文件中的根目录名称相匹配:

map.setTileSource(new XYTileSource("Map_1",
    ResourceProxy.string.mapquest_osm, 0, 18, 256, ".png", new String[] {
        "http://otile1.mqcdn.com/tiles/1.0.0/map/",
        "http://otile2.mqcdn.com/tiles/1.0.0/map/",
        "http://otile3.mqcdn.com/tiles/1.0.0/map/",
        "http://otile4.mqcdn.com/tiles/1.0.0/map/"}));

将仅使用结构如下的 zip 文件:

+-- Map_1
+-- 10
¦ +-- 550
¦ +-- 335.png
...

另请参阅:Download maps for osmdroid