我想尝试通过 osmdroid 集成 OpenStreetMap,但我遇到了一个问题,我不知道缺少什么。场景如下:
症状:地图小部件可以显示,但只有一个空网格。
这是我的活动课中的:
@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>
, after <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>
希望这对你有用。至少这对我的代码有用:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)