android – osmdroid显示一个空网格

我想尝试通过osmdroid进行OpenStreetMap集成,但我遇到了一个我不知道缺少什么的问题.方案如下:

症状:显示地图窗口小部件,但仅显示空网格.

这是在我的Activity类中:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    MapView mapView = new MapView(this,256);
    mapView.setTileSource(TileSourceFactory.MAPNIK);
    mapView.setClickable(true);
    mapView.setBuiltInZoomControls(true);
    setContentView(mapView);
}

(我尝试选择各种TileSources似乎没什么区别)

我的清单还包括这些权限(作为< manifest>的子项,在< uses-sdk>之后):

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

…而我的模拟器以其他方式连接到互联网,例如.网络浏览器工作.

osmdroid和slf4j在构建路径中.该应用程序编译没有问题,并且不会产生任何异常.

可能有什么不对?

非常感谢!

解决:这是由于我的模拟器没有外部存储来缓存地图图块.

解决方法

我对OSMdroid也很新,但尝试这样做?
setContentView(R.layout.offline_map_activity);
mapView = (MapView) findViewById(R.id.openmapview);

您还需要在res / layouts中使用offline_map_activity.xml:

<LinearLayout 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"
android:orientation="vertical" >

    <org.osmdroid.views.MapView
        android:id="@+id/openmapview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"/>
</LinearLayout>

希望这对你有用.至少这适用于我的代码:)

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...