Android Google Maps API集成

时间:2020-02-23 14:28:57  来源:igfitidea点击:

在本教程中,我们将展示如何将android google maps API集成到我们的应用程序中,并根据自己的需要对其进行自定义。
Android Google Maps是一个重要的实用程序,可在众多应用程序中使用。

Android Google Maps API

Android Google Maps v1 API现在已过时,因此我们将Google Maps v2 API集成到我们的应用程序中。

该API自动处理对Google Maps服务器的访问,数据下载,地图显示以及对地图手势的响应。

我们可以使用API调用来添加标记,多边形,显示用户位置并为用户提供与地图互动的其他功能。

Android Google Maps API密钥

要在我们的应用程序中使用android google maps api,我们需要在google开发人员控制台中注册我们的应用程序并启用Google Map API密钥。

单击创建项目按钮以创建一个新项目并为其指定所需的名称。

选择Google Maps Android API,然后单击下一页上显示的Enable API按钮。

启用API后,单击左侧面板中的Go to Credentials。
从"添加凭据"菜单中,选择" API密钥"。

选择Android Key,如下所示。

点击添加软件包名称和指纹按钮以添加您应用的软件包名称(我们使用了com.theitroad.comtegratingmaps)和SHA1指纹。
单击创建按钮后,将显示一个API密钥,供我们在应用程序中使用。

注意:通过运行以下命令来获取SHA 1指纹:

  • 对于Linux OS/MAC:
  • 对于Windows:

下图显示了我们通过在终端上运行上述命令添加的SHA 1指纹以及项目包名称。
您的SHA 1指纹密钥可能是另一种。

添加Android谷歌地图

将以下依赖项添加到build.gradle文件。

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

在AndroidManifest.xml的application标记下添加以下标记。

keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

按照上述步骤,在maps.v2.API_KEY的android:value属性中添加自己的API密钥字符串。

Android Google Maps示例代码

为了简化该应用程序,我们刚刚在content_main.xml中添加了一个SupportMapFragment标签,如下所示:

compile 'com.google.android.gms:play-services:8.3.0'

将以下权限添加到AndroidManifest.xml文件。

<meta-data
          android:name="com.google.android.maps.v2.API_KEY"
          android:value="YOUR_GOOGLE_MAP_API_KEY" 

<meta-data
          android:name="com.google.android.gms.version"
          android:value="@integer/google_play_services_version" 

在模拟器上生成并运行此应用程序。
将显示以下输出:

糟糕!我们错过了什么吗?否。
如果模拟器上未安装最新的Google Play服务版本,则会发生此错误。
有许多变通办法可以更新到最新版本,例如使用以下命令下载和安装Play商店apk:adb install play_store_file.apk

我们建议一个更简单的解决方法。
只需转到"设置"->"应用"->" Google Play服务",然后在build.gradle中使用该版本号代替:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
  xmlns:app="https://schemas.android.com/apk/res-auto"
  xmlns:tools="https://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  app:layout_behavior="@string/appbar_scrolling_view_behavior"
  tools:context="com.theitroad.comtegratingmaps.MainActivity"
  tools:showIn="@layout/activity_main">

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

</RelativeLayout>