【问题标题】:Error in implementing OpenStreetMap实施 OpenStreetMap 时出错
【发布时间】:2017-08-25 09:22:37
【问题描述】:

我正在尝试在 android studio 中实现 OpenStreetMap。我成功添加了如下所示的库。

这是我的 MainActivity:

package com.example.re.osm;

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

import android.app.Activity;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

import com.example.harjotkaur.osm.R;

    public class MainActivity extends Activity {

        private MapView myOpenMapView;
        private MapController myMapController;

        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            myOpenMapView = (MapView)findViewById(R.id.openmapview);
            myOpenMapView.seharjotkaurtBuiltInZoomControls(true);
            myMapController = myOpenMapView.getController();
            myMapController.setZoom(4);
        }

    }

这是我的 build.gradle 文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.0"
    defaultConfig {
        applicationId "com.example.re.osm"
        minSdkVersion 15
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:26.+'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    testCompile 'junit:junit:4.12'
    compile files('libs/slf4j-android-1.5.8.jar')
compile files('libs/osmdroid-android-3.0.8.jar')

}

这是我的清单文件:

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

    <uses-sdk android:minSdkVersion="10" />
    <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" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="OSM" >
        <activity
            android:name=".MainActivity"
            android:label="OSM" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

</manifest>

但是当我运行应用程序时,我只能看到小矩形而不是地图。 我应该如何解决这个问题?我应该遵循哪些步骤?

有什么想法值得赞赏吗?

谢谢

【问题讨论】:

  • osmdroid 库的当前版本是 5.6.5 为什么用这么古老的版本(3.0.8)?它可能已经五岁了。
  • 我无法下载 5.6.5 osmdroid 库。它带我到这个页面:jar-download.com/… 我应该使用哪个版本?
  • 按照 osmdroid 页面上的说明进行操作:osmdroid.github.io/osmdroid 并使用 gradle 依赖项。如果你不能使用 gradle,你可以在这里下载:github.com/osmdroid/osmdroid/releases
  • 是的。这样做是否完美。我成功地将世界地图设置为一组特定的地理坐标。关于如何获取当前用户位置的任何想法?
  • @Thomas 请点击此链接获取当前位置。 developer.android.com/training/location/retrieve-current.html如果你也能支持我的回答,那就太好了。

标签: android android-studio openstreetmap osmdroid


【解决方案1】:

替换

import com.exercise.OpenStreetMapView.R;

用这个:

import com.example.re.osm.R;

【讨论】:

  • 我用导入语句更新了我的问题。我应该改变什么?
  • @Thomas 我已经编辑了我的答案。你试过了吗?如果它不起作用,请在问题中添加你的包导入。
猜你喜欢
  • 2018-06-07
  • 2018-12-12
  • 2013-07-05
  • 1970-01-01
  • 1970-01-01
  • 2017-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多