在android项目中显示Tilemills mbtiles的代码

时间:2014-08-29 10:54:24

标签: android mapbox mbtiles

我正在开发一个Android项目,我必须使用mbtiles显示离线地图。是否有任何教程显示如何设置mbtiles inandroid项目。

1 个答案:

答案 0 :(得分:1)

对不起是先生,但似乎www.google.com并不是你最好的朋友......

无论如何,让我们建设性:

1。)您可以使用MapBox SDK。 Here是关于如何使用在线地图的示例的链接。现在,离线地图并没有多大用处,但在那里你可以找到SDK。只需下载它,在那里你也可以找到一个测试应用程序,你可以找到这些人是如何做到的。

我相信必须有一种更简单的方法来安装库,但我必须导入许多新的东西来使这项工作。另外,要小心获取最新的库jar,因为我有okhttp-urlconnection-2.0.0.jar,应用程序在显示视图时崩溃了。然后我发现我需要2.1.0版本的jar。

2.。)对于离线地图导入,我发现此link很有帮助,因为它提供了一些代码,可以减轻我的痛苦,以便正确显示地图。 如果链接死于代码状态:

  

要开始创建,例如,在WearActivity中使用名为setupMaboxOffline()的方法:

public void setupMaboxOffline() {
    MapView mapView = (MapView) findViewById(R.id.mapview);
    mapView.setZoom(5);
    mapView.setCenter(new LatLng(38.8977, -77.0365));
    mapView.setTileSource(new MBTilesLayer(this, "control-room-0.2.0.mbtiles"));
}
  

然后,在onCreate()的WatchViewStub中调用它。 Android Wear使用此存根来根据用户手表的形状选择正确的布局(圆形或方形)。

     

上面引用的MapView看起来像这样(在两种布局中):

<com.mapbox.mapboxsdk.views.MapView
    android:id="@+id/mapview
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />

如果您需要xml this中的mapbox id属性,那么问题就会得到答案。

基本上,由于我只显示地图,这很简单...... 您需要资产文件夹中的.mbtiles文件。 图书馆需要显示没有错误;)。 在您的xml文件中,您已经放置了MapView自定义视图。

然后在你的活动中:

MapView mapView = (MapView) findViewById(R.id.mapview);
mapView.setTileSource(new MBTilesLayer(this, "map.mbtiles"));

然后,您可以添加缩放和填充等自定义设置。

祝您离线地图好运。 :)