即使我获得了 API 密钥,也无法使用谷歌地图

Posted

技术标签:

【中文标题】即使我获得了 API 密钥,也无法使用谷歌地图【英文标题】:Unable to use the google map map eventhough i got the API key 【发布时间】:2016-08-16 02:00:08 【问题描述】:

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

【问题讨论】:

向我们展示您尝试过的代码和堆栈跟踪(如果有)。 【参考方案1】:

首先让我问你,你到现在都做了什么?因为根据您的编码,任何开发人员都可以建议您。任何方式,请遵循此..

定义 XML 之类的

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


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

</RelativeLayout>

在 MainActivity 中初始化你的谷歌地图

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>

【讨论】:

还将这些添加到清单中的 标签下

以上是关于即使我获得了 API 密钥,也无法使用谷歌地图的主要内容,如果未能解决你的问题,请参考以下文章

谷歌地图API密钥以编程方式

无法在 vue cli 组件上显示谷歌地图

尽管有良好的API密钥,Google地图仍无法在我的网站上运行[关闭]

即使在 Flutter 中使用正确的 SHA1 密钥,Google 地图也无法在发布版本中工作

谷歌地图 api 密钥有效,但道路 apikey 无效

谷歌地图 api 无法读取位置服务