package com.nutiteq.advancedmap3;
import java.io.IOException;
import android.os.Bundle;
import android.util.Log;
import com.nutiteq.core.MapRange;
import com.nutiteq.datasources.MBTilesTileDataSource;
import com.nutiteq.datasources.TileDataSource;
import com.nutiteq.hellomap3.util.AssetCopy;
/**
* A sample that uses bundled asset for offline base map.
* As MBTilesDataSource can be used only with files residing in file system,
* the assets needs to be copied first to the SDCard.
*/
public class OfflineVectorMapActivity extends VectorMapSampleBaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// MapSampleBaseActivity creates and configures mapView
super.onCreate(savedInstanceState);
// Limit zoom range, as we have tiles only up to level 5
mapView.getOptions().setZoomRange(new MapRange(0,6));
mapView.setZoom(3, 0);
}
@Override
protected TileDataSource createTileDataSource() {
// offline map data source
String mbTileFile = "world_zoom5.mbtiles";
try {
String localDir = getExternalFilesDir(null).toString();
AssetCopy.copyAssetToSDCard(getAssets(), mbTileFile, localDir);
Log.i(Const.LOG_TAG,"copy done to " + localDir + "/"
+ mbTileFile);
MBTilesTileDataSource vectorTileDataSource = new MBTilesTileDataSource(0, 4, localDir + "/"
+ mbTileFile);
return vectorTileDataSource;
} catch (IOException e) {
Log.e(Const.LOG_TAG, "mbTileFile cannot be copied: "+mbTileFile);
Log.e(Const.LOG_TAG, e.getLocalizedMessage());
}
return null;
}
}