Google Map for Android 官方API 学习与解析

一、Getting the Last Known Location(获取上一次已经获取过的位置信息)

(1)首先权限如下:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
后两个关于位置的权限,可以确保我们通过API获取非常精确的位置信息,比如精确到一个城市的街道等。
(2) Connect to Google Play Services(连接到相关的API)
为了连接到相关的API,我们需要创建Google Play services API client.
创建一个Activity,在onCreate方法中创建GoogleApiClient,使用GoogleApiClient.Builder(this)方法创建:
if (mGoogleApiClient == null) {
   mGoogleApiClient = new GoogleApiClient.Builder(this)
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .addApi(LocationServices.API)
            .build();
}
上面主要是创建GoogleApiClient的同时,注册了相关的连接事件接口,实现这些接口的方法,我们可以在连接完成,连接失败等进行相应的操作。而且,最重要的是我们添加了API LocationServices.API。
连接至API的方法是直接使用m GoogleApiClien.connect():
@Override
protected void onStart() {
    if (mGoogleApiClient != null) {
    mGoogleApiClient.connect();
    //}
    super.onStart();
}

@Override
protected void onStop() {
    if (mGoogleApiClient != null) {
        mGoogleApiClient.disconnect();
    }
    super.onStop();
}
Activity需要实现下面两个接口:
GoogleApiClient.ConnectionCallbacks
GoogleApiClient.OnConnectionFailedListener,
然后分别实现它们的方法,主要是:
@Override
public void onConnected(@Nullable Bundle bundle) {
    mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
   if (mLastLocation != null) {
      System.out.println(mLastLocation.getLatitude());
      System.out.println(mLastLocation.getLongitude());
    }
}
上述最重要的方法就是getLastLacation(GoogleApiClient),需要传入GoogleApiClient。
当然,这里第一次运行时,mLastLocation一定会是null,因为 mLastLocation是获取的上一个已经获取到的位置信息,所以,这里为null。
下一节就可以解决这个问题。



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值