高德地图之定位:

来源:互联网 发布:淘宝怎么看上下架时间 编辑:程序博客网 时间:2024/05/13 22:28

1.注册高德开发者账号:注册完成后登陆开发者账号

2.点击控制台,进入我的应用,刚开始没有,可以创建应用:

3.填写应用资料:

图片:这里写图片描述

4.下载定位SdK:

  • AMap_Location_V3.1.0_20161027.jar:

5.在清单文件中meta-data中配置key:

这里写图片描述

  • android:name=”com.amap.api.v2.apikey”
    android:value=”你的key值”

6.添加相应的权限 uses-permission :

  • android:name=”android.permission.INTERNET”
    写入扩展存储,向扩展卡写入数据,用于写入缓存定位数据
  • android:name=”android.permission.WRITE_EXTERNAL_STORAGE”
    用于进行网络定位
  • android:name=”android.permission.ACCESS_COARSE_LOCATION”
    获取运营商信息,用于支持提供运营商信息相关的接口
  • android:name=”android.permission.ACCESS_NETWORK_STATE”
    用于访问GPS定位
  • android:name=”android.permission.ACCESS_FINE_LOCATION”
    用于读取手机当前的状态
  • android:name=”android.permission.READ_PHONE_STATE”
    用于访问wifi网络信息,wifi信息会用于进行网络定位
  • android:name=”android.permission.ACCESS_WIFI_STATE”
    这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位
  • android:name=”android.permission.CHANGE_WIFI_STATE”
    这个权限用于允许程序在手机屏幕关闭后后台进程仍然运行

7.添加Java代码:

//声明mLocationOption对象
public AMapLocationClientOption mLocationOption = null;
mlocationClient = new AMapLocationClient(this);
//初始化定位参数
mLocationOption = new AMapLocationClientOption();
//设置定位监听
mlocationClient.setLocationListener(this);
//设置定位模式为高精度模式,Battery_Saving为低功耗模式,Device_Sensors是仅设备模式
mLocationOption.setLocationMode(AMapLocationMode.Hight_Accuracy);
//设置定位间隔,单位毫秒,默认为2000ms
mLocationOption.setInterval(2000);
//设置定位参数
mlocationClient.setLocationOption(mLocationOption);
// 此方法为每隔固定时间会发起一次定位请求,为了减少电量消耗或网络流量消耗,
// 注意设置合适的定位时间的间隔(最小间隔支持为2000ms),并且在合适时间调用stopLocation()方法来取消定位请求
// 在定位结束后,在合适的生命周期调用onDestroy()方法
// 在单次定位情况下,定位无论成功与否,都无需调用stopLocation()方法移除请求,定位sdk内部会移除
//启动定位
mlocationClient.startLocation();
@Override
public void onLocationChanged(AMapLocation amapLocation) {
if (amapLocation != null) {
if (amapLocation.getErrorCode() == 0) {
//定位成功回调信息,设置相关消息
amapLocation.getLocationType();//获取当前定位结果来源,如网络定位结果,详见定位类型表
amapLocation.getLatitude();//获取纬度
amapLocation.getLongitude();//获取经度
amapLocation.getAccuracy();//获取精度信息
SimpleDateFormat df = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
Date date = new Date(amapLocation.getTime());
df.format(date);//定位时间
} else {
//显示错误信息ErrCode是错误码,errInfo是错误信息,详见错误码表。
Log.e(“AmapError”,”location Error, ErrCode:”
+ amapLocation.getErrorCode() + “, errInfo:”
+ amapLocation.getErrorInfo());
}
}
}

这样一个完整的定位就做好了:

0 0
原创粉丝点击