Google 地图 API for Android

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                       
 

原文:Introduction to Google Maps API for Android
  作者: Eunice Obugyei
  译者:kmyhy

从健康类 app Runkeeper 到游戏 app 精灵宝可梦,位置服务对现代 app 来说越来越重要。

在本文中,我们将创建一个 app,名字就叫做 City Guide。这个 app 允许用户搜索一个地点,使用 Google 地图显示这个地点的位置并监听用户的位置改变。

我们将学习如何使用 Google 地图 API for Android,Google 的位置服务 API 和 Google 的 Places API for Android 完成如下工作:

  • 显示用户当前位置
  • 在地图上显示和自定义大头钉
  • 查询给定坐标的位置信息
  • 监听位置变化
  • 搜索兴趣点
 

注意:本 Google 地图 API 教程假设你熟悉基本的 Android 开发。如果你第一次接触 Android 开发,请阅读我们的 Android 入门教程 来学习基础知识。

开始

打开 Android Studio,在快速启动菜单中选择 Start a new Android Studio project:

在创建新项目对话框,New Project 视图,输入 app 名称 City Guide,选择保存地址,点击 Next。

在 Target Android Devices 窗口,勾选 Phone and Tablet 选框,选择你想要 app 支持的 minimum SDK。从 Minimum SDK 的下拉框中选择 API 14。然后点 Next。

在 Add an Activity to Mobile 窗口,选择 Google Maps Activity 然后点 Next。

在 Customize the Activity 窗口,点击 Finish,完成项目的创建。

Android Studio 将启动 Gradle 并编译项目。这会花几分钟。
打开 MapsActivity.java。它应该是这个样子:

package com.raywenderlich.cityguide;import android.support.v4.app.FragmentActivity;import android.os.Bundle;import com.google.android.gms.maps.CameraUpdateFactory;import com.google.android.gms.maps.GoogleMap;import com.google.android.gms.maps.OnMapReadyCallback;import com.google.android.gms.maps.SupportMapFragment;import com.google.android.gms.maps.model.LatLng;import com.google.android.gms.maps.model.MarkerOptions;// 1public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
      private GoogleMap mMap;  // 2  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_maps);    // Obtain the SupportMapFragment and get notified when the map is ready to be used.    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()        .findFragmentById(R.id.map);    mapFragment.getMapAsync(this);  }  // 3  @Override  public void onMapReady(GoogleMap googleMap) {    mMap = googleMap;    // Add a marker in Sydney and move the camera    LatLng sydney = new LatLng(-34, 151);    mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));    mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));  }}
  
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  1. MapsActivity 实现了 OnMapReadyCallback 接口并继承了 FragmentActivity。
  2. 这个类覆盖了 FragmentActivity 的 onCreate() 方法。
  3. 同时覆盖了 OnMapReadyCallback 的 onMapReady() 方法。这个方法在地图准备就绪时调用。在这个方法中,创建了一个 marker(大头钉),坐标位于澳大利亚悉尼,然后将 marker 方到地图上。

Android Studio 在 manifests/AndroidManifest.xml 中添加了如下代码:

  1. 一个 ACCESS_FINE_LOCATION 权限声明。要访问用户的精确位置,这必不可少。
  2. 添加了一个 com.google.android.geo.API_KEY 的 meta-data。这保存了 API key。

Android Studio 也在 build.gradle 中添加了一个 Google Play Service 的依赖。这个依赖将 Google 地图和定位服务 API 暴露给 app 使用。

compile 'com.google.android.gms:play-services:VERSION_HERE'
  
  
  
  • 1

当编译完成后,运行 app 你会看到:

你看到一个空白窗口,上面没有地图;你还没有为 Google Map 创建 API key。我们将在下一节创建。

 

注意:如果你使用模拟器,模拟器所安装的版本必须满足 build.gradle 文件中 Google Play Service 所要求的版本。如果你看到提示需要升级模拟器的 Google Play Service 版本,你可以从 Android Studio  SDK 管理器中下载最新的 Google APIs 并安装到虚拟设备,或者降低 gradle 依赖中的版本。

使用 Google 地图 APIs

要使用任何 Google 地图 API,都需要创建一个 API key 并从开发者控制台中启用所需的 API。如果你没有 Google 账号,现在就去创建它——免费的!

创建 API Key

打开 res/values/google_maps_api.xml,你会看到:

现在复制粘贴上图中的链接到浏览器中。
在 Enable an API 页,选择 Create a project 然后点 Continue。

在下一页,点 Create API key 按钮。

然后,复制 API key created 对话框中的 API key,点击 Close。

回到 google_maps_api.xml, 将 google_maps_key 替换成刚才拷贝的 API key。
运行 app,你会看到地图和地图上的红色大头钉。

回到 developer console,打开 Google Places API for Android。我们会在后面用这个 API 查找 Place。

建立 Play Services 连接

在编写 Java 代码之前,我们需要配置一下 Android Studio 让它自动为我们插入 import 语句,节省我们的工作量。
依次打开 Android Studio > Preferences > Editor > General > Auto Import 菜单,选择 Add unambiguous imports on the fly 和 Show import popup 选项,点击 OK。

打开 MapsActivity.java ,让 MapsActivity 实现下列接口:

public class MapsActivity 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值