Android Osmdroid-无法在线加载地图

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" 我在清单中具有以

我使用osmdroid库在android应用程序中使用openstreetmaps,但我无法使用wifi在线加载地图。 如果我手动下载地图(mbtiles文件)并将其放入设备中的osmdroid filder中,它可以正常工作,并由我的应用程序加载,但如果我希望我的应用程序实时从web加载地图,它将不起作用,地图也不会加载

在Logcat中,我得到以下警告:

"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);