虽然我获得了API密钥,但无法使用谷歌地图

时间:2016-04-22 12:25:23

标签: android android-maps-v2 android-location

我已获得API密钥但仍无法在我的项目中打开谷歌地图。我的要求是我必须使用谷歌地图在我的应用程序中获取当前位置和附近的医院详细信息,我希望按照距离增加顺序的医院列表。点击我的医院之后,我们可以显示从当前地点到该特定医院的可导航路径。请在enter image description here下面找到用户界面部分。请帮助我。

1 个答案:

答案 0 :(得分:0)

首先让我问你,你到目前为止做了什么?因为根据您的编码,任何开发人员都可以建议您。 Any How,Please Follow this ..

定义XML,例如

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent" >


    <fragment
        android:id="@+id/map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        class="com.google.android.gms.maps.SupportMapFragment" />

</RelativeLayout>

在MainActivity中初始化Google地图

public class MainActivity extends Activity {

private GoogleMap googleMap;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    try {
        initilizeMap();

    } catch (Exception e) {
        e.printStackTrace();
    }

}

private void initilizeMap() {
    if (googleMap == null) {
        googleMap = ((MapFragment) getFragmentManager().findFragmentById(
                R.id.map)).getMap();

        if (googleMap == null) {
            Toast.makeText(getApplicationContext(),
                    "Sorry! unable to create maps", Toast.LENGTH_SHORT)
                    .show();
        }
    }
}

@Override
protected void onResume() {
    super.onResume();
    initilizeMap();
}

}

最重要的是使用所有权限正确定义您的清单文件

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

<permission
    android:name="packagename.permission.MAPS_RECEIVE"
    android:protectionLevel="signature" />

<uses-permission android:name="packagename.permission.MAPS_RECEIVE" />

<uses-sdk
    android:minSdkVersion="16"
    android:targetSdkVersion="23" />

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<!-- Required OpenGL ES 2.0. for Maps V2 -->
<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name">
    <activity
        android:name="packagename.MainActivity"
        android:label="@string/app_name"
        android:theme="@style/AppBaseTheme"
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

    <!-- Goolge API Key -->
    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="AIzaSyBZMlkOv4sj-M5JO9p6wksdax4TEjDVLgo" />
</application>