osmdroid:如何从sdcard加载离线地图到MapView

时间:2016-04-20 11:52:58

标签: android osmdroid

我已经生成了一组地图,将其压缩到名称tiles.zip下并复制到sdcard/osmdroid文件夹中。以下是atlas设置和文件夹内容。

enter image description here

enter image description here

我使用了示例项目here。 它运行没有错误,但我的地图没有显示在MapView中。这是MainActivity和layout:

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

import org.osmdroid.tileprovider.tilesource.TileSourceFactory;
import org.osmdroid.util.GeoPoint;
import org.osmdroid.views.MapView;


public class MainActivity extends AppCompatActivity {

    public static final GeoPoint BERLIN = new GeoPoint(52.516667, 13.383333);
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MapView mapView = (MapView) findViewById(R.id.mapview);
        mapView.setClickable(true);
        mapView.setBuiltInZoomControls(true);
        mapView.setMultiTouchControls(true);
        mapView.setUseDataConnection(true);

       mapView.setTileSource(TileSourceFactory.MAPQUESTOSM);
       IMapController mapViewController = mapView.getController();
       mapViewController.setZoom(15);
       mapViewController.setCenter(BERLIN);


    }
}

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="${packageName}.${activityClass}">

    <org.osmdroid.views.MapView
        android:id="@+id/mapview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clickable="true" />

</RelativeLayout>

正如我测试的那样,如果我解压缩地图并将其添加为assets,则会显示地图但顺序错误。

知道什么是错的? 感谢

EDIT1

这是我的日志:

enter image description here

1 个答案:

答案 0 :(得分:1)


1)你有缩放等级15瓦的柏林吗?如果没有,请尝试将缩放级别设置为1或将地图中心更改为您所在的区域。
2)您不需要在MOBAC中创建这么多层。只需选择您的区域,缩放级别并立即添加。它可能有所帮助。其他设置与我的项目相同