Я пытаюсь сделать приложение, основанное на автономных картах. Карты Openstreet стали моим выбором, так как OSMDroid, кажется, используется довольно интенсивно. Однако, когда я попробовал это с автономными картами (MBTiles, созданные с помощью создателя Mobile Atlas), класс «MapView» не отображает карту на моем устройстве. Вот фрагмент, который живет внутри фрагмента. Я также не вижу, чтобы logcat выдавал какие-либо ошибки
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
String [] url = {"http://example.org/"};
XYTileSource MBTILESRENDER = new XYTileSource("mbtiles",
ResourceProxy.string.offline_mode,
1, 20, 256,
".png",
url);
DefaultResourceProxyImpl mResourceProxy = new DefaultResourceProxyImpl(getActivity());
SimpleRegisterReceiver simpleReceiver = new SimpleRegisterReceiver(getActivity());
File f = new File(Environment.getExternalStorageDirectory(), "osmdroid/srMbTiles.mbtiles");
Log.e("File ", f.toString() + " PATH:" + f.getAbsolutePath());
if ( f.exists() ) {
Log.d("DEBUG", " #### FIle Exists");
}
IArchiveFile[] files = { MBTilesFileArchive.getDatabaseFileArchive(f) };
MapTileModuleProviderBase moduleProvider = new MapTileFileArchiveProvider(simpleReceiver, MBTILESRENDER, files);
MapTileProviderArray mProvider = new MapTileProviderArray(MBTILESRENDER, null, new MapTileModuleProviderBase[] { moduleProvider });
myOpenMapView = new MapView(getActivity(),
256,mResourceProxy, mProvider);
myOpenMapView.setBuiltInZoomControls(true);
myOpenMapView.setTileSource(MBTILESRENDER);
IMapController controller = (IMapController) myOpenMapView.getController();
controller.setZoom(12);
getActivity().setContentView(myOpenMapView);
}
Любая помощь будет принята с благодарностью. заранее спасибо