1

我尝试将 OSMdroid 与离线地图一起使用,但我想知道如何使用多个地图文件,因为 mapsforge 提供了几个文件来覆盖法国国家。

我尝试了下面的代码,但它不起作用:

boolean setMapsForgeTileProvider(){

    GenericMapView genericMap = (GenericMapView) rootView.findViewById(R.id.mapview);

    String path = Environment.getExternalStorageDirectory().getPath()+"/mapsforge/";
    File folder = new File(path);
    File[] listOfFiles = folder.listFiles();

    if (listOfFiles == null)
        return false;

    File mapFile = null;
    for (File file:listOfFiles){
        if (file.isFile() && file.getName().endsWith(".map")){
            mapFile = file;
            MapsForgeTileProvider mfProvider = new MapsForgeTileProvider(new SimpleRegisterReceiver(getActivity()), mapFile);
            final TilesOverlay tilesOverlay = new TilesOverlay(mfProvider, getActivity());
            tilesOverlay.setLoadingBackgroundColor(Color.TRANSPARENT);
            genericMap.setTileProvider(mfProvider);
            mMapView = genericMap.getMapView();
            mMapView.getOverlays().add(tilesOverlay);
        }
    }

    if (mapFile == null)
        return false;

    return true;
}

事实上地图在这里,当我放大和缩小时我可以看到它,但它们显示在白色背景上而不是透明的,所以它们被遮盖了。

无论如何,这是正确的方法吗?

谢谢,

4

0 回答 0