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的方法? –