android - 使用 osmdroid 时不显示 map

标签 android openstreetmap osmdroid

我正在学习这个关于使用 osmdroid 的简单教程: http://www.gleisarbeiter.de/2011/03/17/using-openstreetmaps-with-osmdroid-on-android/

但是每当我使用 Genymotion android 模拟器或真实设备运行该应用程序时,我只会看到灰色标题而不是 map ,如下所示: enter image description here

我的 androidmanifest.xml 文件是:

<?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.picofoundry.nationalparksofjapan"
     android:versionCode="1"
     android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="11"
    android:targetSdkVersion="19" />

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_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-feature android:name="android.hardware.location.network" />
    <uses-feature android:name="android.hardware.location.gps" />
    <uses-feature android:name="android.hardware.wifi" />


    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <!-- Splash screen -->
    <activity
        android:name="com.picofoundry.nationalparksofjapan.SplashScreen"
        android:label="@string/app_name"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.Black.NoTitleBar" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <!-- Main activity -->
    <activity
        android:name="com.picofoundry.nationalparksofjapan.MainActivity"
        android:launchMode="singleTask"
        android:configChanges="orientation|keyboardHidden"
        android:label="@string/app_name" >
    </activity>
</application>
</manifest>

MainActivity 是:

package com.picofoundry.nationalparksofjapan;

import android.os.Bundle;
import android.app.Activity;

import org.osmdroid.views.MapController;
import org.osmdroid.views.MapView;

public class MainActivity extends Activity {

private MapView myOpenMapView;
private MapController myMapController;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    myOpenMapView = new MapView(this, 256);
    myOpenMapView.setClickable(true);
    myOpenMapView.setBuiltInZoomControls(true);
    setContentView(myOpenMapView);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}
}

最佳答案

如果您使用的是默认图 block 提供商 (Mapnik),那么他们最近会因为请求中的用户代理字段不正确而停止提供图 block 。 Osmdroid 4.1 版修复了该问题。

关于android - 使用 osmdroid 时不显示 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21506243/

相关文章:

android - Android Studio在密度上拆分了APK

python - Osmnx:如何检索作为高速公路一部分的公交车站信息节点的信息?

android - OsmDroidBonusPack OnMarkerClickListener 未调用

javascript - 如何以一种语言(德语)显示嵌入 osm map ?

java - 如何使用 OSMDroid 同时缩放和滚动 map

android - 字体未在相同分辨率的设备中正确呈现

java - Android Volley 请求抛出空指针异常

android - 无法使用适用于 Android 4 的代码在未调用 Looper.prepare() 的线程内创建处理程序

android - OSMdroid 添加自定义图标到 ItemizedOverlay

java - 是否可以在 java swing 应用程序中运行 osmdroid