Android Osmdroid-无法在线加载地图
我使用osmdroid库在android应用程序中使用openstreetmaps,但我无法使用wifi在线加载地图。 如果我手动下载地图(mbtiles文件)并将其放入设备中的osmdroid filder中,它可以正常工作,并由我的应用程序加载,但如果我希望我的应用程序实时从web加载地图,它将不起作用,地图也不会加载 在Logcat中,我得到以下警告:Android Osmdroid-无法在线加载地图,android,osmdroid,Android,Osmdroid,我使用osmdroid库在android应用程序中使用openstreetmaps,但我无法使用wifi在线加载地图。 如果我手动下载地图(mbtiles文件)并将其放入设备中的osmdroid filder中,它可以正常工作,并由我的应用程序加载,但如果我希望我的应用程序实时从web加载地图,它将不起作用,地图也不会加载 在Logcat中,我得到以下警告: "Problem downloading Maptile: /4/8/8 HTTP/1.1 403 Forbiden" 我在清单中具有以
"Problem downloading Maptile: /4/8/8 HTTP/1.1 403 Forbiden"
我在清单中具有以下权限:
<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" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
有人能帮我吗?
谢谢
默认的Apache HttpClient用户代理最近被禁止访问tile.openstreetmap.org(服务器返回403)。因此,
Mapnik提供程序不再为osmdroid提供任何磁贴
OpenStreetMap的平铺使用策略(
)说
必须发送“有效的用户代理识别应用程序”。电流
用户代理osmdroid在下载磁贴时发送
“ApacheHttpClient/UNAVAILABLE(Java1.4)”,非常通用
我已经创建了一个补丁程序,它将发送一个用户代理程序,该代理程序比
符合OSM的磁贴使用策略。新的用户代理是
“osmdroid([package name]),其中[package name]是包名
使用osmdroid创建应用程序的
可以在以下位置找到修补程序:
这个补丁不是很漂亮,但它能完成它的工作
来源:LordRaydenMK提到的问题已在osmdroid 4.1中修复 因此,如果这是您遇到的问题,您只需将osmdroid库更新为最新版本 加上这个
myOpenMapView = (MapView)findViewById(R.id.openmapview);
myOpenMapView.setBuiltInZoomControls(true);
myMapController = myOpenMapView.getController();
myMapController.setZoom(4);