申请key这些我就不说了,不懂的同学可以去高德地图开放平台查看详细介绍

1.下载依赖

https://lbs.amap.com/api/android-location-sdk/download

因为是要国外定外 所以下载这个GooglePlay渠道包 然后解压 获取里面的jar包(其他定位配置参考高德地图定位文档)

解压后将AMap_Location的jar包放到工程的libs目录下

定位代码:

//声明AMapLocationClient类对象

public AMapLocationClient aMapLocationClient = null;

private void initLocation() {

aMapLocationClient = new AMapLocationClient(this);

AMapLocationClientOption mLocationOption = new AMapLocationClientOption();

mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);

//设置是否返回地址信息(默认返回地址信息)

mLocationOption.setNeedAddress(true);

//关闭缓存机制

mLocationOption.setLocationCacheEnable(false);

//给定位客户端对象设置定位参数

aMapLocationClient.setLocationOption(mLocationOption);

aMapLocationClient.setLocationListener(mAMapLocationListener);

//启动定位

aMapLocationClient.startLocation();

}

AMapLocationListener mAMapLocationListener = new AMapLocationListener() {

@Override

public void onLocationChanged(AMapLocation amapLocation) {

if (amapLocation != null) {

if (amapLocation.getErrorCode() == 0) {

//可在其中解析amapLocation获取相应内容。

Log.e("mAMapLocationListener", amapLocation.getLatitude() + "," + amapLocation.getLongitude() + "," + amapLocation.getCountry() + "," + amapLocation.getCity() + "," + amapLocation.getAddress());

} else {

//定位失败时,可通过ErrCode(错误码)信息来确定失败的原因,errInfo是错误信息,详见错误码表。

Log.e("AmapError", "location Error, ErrCode:"

+ amapLocation.getErrorCode() + ", errInfo:"

+ amapLocation.getErrorInfo());

}

}

}

};

另外 记得在onDestroy 销毁监听

@Override

protected void onDestroy() {

unregistAmap();

super.onDestroy();

}

//解绑

private void unregistAmap(){

if (null != mLocationClient) {

if (mLocationClient.isStarted()) {

mLocationClient.stopLocation();

}

mLocationClient.unRegisterLocationListener(mAMapLocationListener);

mLocationClient = null;

}

}