2
我已經開始使用Mapbox Android SDK構建Android應用程序。我想使用我在Tilemill創建的自定義mbtiles文件。我下面這個指令Mapbox Android SDK與在線定製MBTiles
Code to Display the Tilemills mbtiles in android project
我已經成功地實現了這個代碼和工作的罰款。但問題是,當我構建APK時,它變成了一個巨大的文件,因爲我的MBTiles文件太大了。這就是爲什麼它需要很長時間才能打開應用程序。有沒有辦法從聯機服務器存儲訪問MBTiles文件,如http://www.example.com/mymap.mbtiles?我試圖用下面的代碼的MapView活動,但沒有得到任何運氣
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MapView mapView = (MapView) findViewById(R.id.mapview);
mapView.setZoom(10);
mapView.setCenter(new LatLng(38.8977, -77.0365));
mapView.setTileSource(new MBTilesLayer(this, "http://www.example.com/mymap.mbtiles"));
XML文件包含
<com.mapbox.mapboxsdk.views.MapView
android:id="@+id/mapview
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
它終於有效。但是我使用WebSourceTileLayer而不是TileJsonTileLayer。問題是瓷磚加載速度太慢。當我在web框架中使用與傳單API相同的瓷磚時,它不會花太長時間。你能讓我知道TileJsonTileLayer的構造函數嗎?或者它是否被替換爲0.7.4版本的depreacated? –
我找到了[TileJsonTileLayer.java](https://github.com/mapbox/mapbox-android-sdk-legacy/blob/0.7.4/MapboxAndroidSDK/src/main/java/com/mapbox/mapboxsdk/tileprovider/ tilesource/TileJsonTileLayer.java)在遺留項目的0.7.4分支上。 TileJsonTileLayer應該和WebSourceTileLayer具有相同的構造函數。但是,在我看來,你應該使用方法setTileJSON(JSONObject aTileJSON)或重寫getBrandedJSONURL來返回正確的URL。 – jmeinke
....您的解決方案正在工作,但通過mb-util導出mbtiles然後使用它非常耗費時間和忙碌的工作。你有沒有找到直接使用mbTiles的方法? –