我想尝试通过 osmdroid 集成 OpenStreetMap,但我遇到了一个问题,我不知道缺少什么。场景如下:
症状: map 小部件显示但只有空网格。
这是在我的 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 似乎没有区别)
我的 list 还包括这些权限(作为 <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 在构建路径中。该应用程序编译没有问题,也没有产生异常。
有什么问题吗?
非常感谢!
已解决:这是因为我的模拟器没有外部存储来缓存 map 图 block 。
最佳答案
我也是 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 - osmdroid 显示空网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14060389/