osmdroid MapTileDownloader现在显示403禁止作为HTTP响应

时间:2016-08-12 15:03:45

标签: android osmdroid

我已成功使用osmdroid-android-4.1.jar一段时间在我的应用中显示OSM地图图块。 现在,从昨天开始,我根本没有显示任何瓷砖。当我将手机连接到PC时,我在日志中看到403禁止响应。我使用Android Studio在Ubuntu机器上构建了应用程序。我还没有很好地理解.aar文件,可能是4.1jar现在已经过时而没有设置正确的用户代理?

我知道现在不支持Mapquest,但我使用的是Mapnik磁贴

感激地收到所有信息

更新 我刚在Windows PC上尝试过一个基于Eclipse的旧项目。这使用4.1 jar,我在模拟器中运行它。我看到相同的403响应,没有地图图块。磁贴源是

mMapView.setTileSource(TileSourceFactory.DEFAULT_TILE_SOURCE);

我知道这个项目曾经工作过。缓存切片显示确定,但如果我移动地图 - 没有瓷砖。

整个代码是

public class OsmdroidDemoMap extends Activity {
    private MapView         mMapView;
    private MapController   mMapController;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.osm_main);
        mMapView = (MapView) findViewById(R.id.mapview);
        mMapView.setTileSource(TileSourceFactory.DEFAULT_TILE_SOURCE);
        mMapView.setBuiltInZoomControls(true);
        mMapController = (MapController) mMapView.getController();
        mMapController.setZoom(13);
        GeoPoint gPt = new GeoPoint(51500000, -150000);
        mMapController.setCenter(gPt);
    }
}
/* HAVE THIS AS YOUR osm_main.xml
---------------------------------------------------------- XML START
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <org.osmdroid.views.MapView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/mapview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:clickable="true" />
</LinearLayout>
---------------------------------------------------------- XML END
Include slf4j-android-1.5.8.jar and osmdroid-android-4.1.jar in the build path
(Google search for where to get them from)
*/

我之前已经发布了这个代码作为答案,并作为最小的工作osmdroid样本的一个例子 - 它现在不是一个工作的例子!

1 个答案:

答案 0 :(得分:2)

我们今天遇到了同样的问题。

在build.gradle中我们改变了这个:

compile files('libs/osmdroid-android-4.2.jar')

为:

compile 'org.osmdroid:osmdroid-android:5.1@aar'

并补充说:

OpenStreetMapTileProviderConstants.setUserAgentValue(BuildConfig.APPLICATION_ID);

在加载地图之前。

您可以在此处详细了解此问题: https://github.com/osmdroid/osmdroid/issues/366

希望这对你有帮助!