高德定位的简单使用

来源:互联网 发布:内存卡数据恢复方法 编辑:程序博客网 时间:2024/04/27 23:26

1.所先到高德上面申请一个应用,然后下载关于高德定位的sdk。

2.配置工程,将申请的key填写到androidManifest里面

<meta-data android:name="com.amap.api.v2.apikey" android:value="ebfa77ca94dcf590bc643cf488bd673d">
        </meta-data><!-- 高德定位key -->

然后配置一个定位service

<service android:name="com.amap.api.location.APSService" ></service>

这样就可以开始写代码了

3.先声明AMapLocationClient

public AMapLocationClient mLocationClient = null;

mLocationClient = new AMapLocationClient(getApplicationContext());

然后在配置定位参数

/**
* 定位参数设置
*/
private void locationSetting()
{
//初始化定位参数
mLocationOption = new AMapLocationClientOption();
//设置定位模式为高精度模式,Battery_Saving为低功耗模式,Device_Sensors是仅设备模式
mLocationOption.setLocationMode(AMapLocationMode.Hight_Accuracy);
//设置是否返回地址信息(默认返回地址信息)
mLocationOption.setNeedAddress(true);
//设置是否只定位一次,默认为false
mLocationOption.setOnceLocation(true);
//设置是否强制刷新WIFI,默认为强制刷新
mLocationOption.setWifiActiveScan(true);
//设置是否允许模拟位置,默认为false,不允许模拟位置
mLocationOption.setMockEnable(false);
//设置定位间隔,单位毫秒,默认为2000ms
mLocationOption.setInterval(2000);
//给定位客户端对象设置定位参数
mLocationClient.setLocationOption(mLocationOption);
//启动定位
mLocationClient.startLocation();

}

最后配置定位监听,这样高德的定位基本完成了

package com.mlf_cate.ui;


import android.os.Handler;
import android.os.Message;
import android.util.Log;


import com.amap.api.location.AMapLocation;
import com.amap.api.location.AMapLocationListener;


/**
 * 定位回调函数
 * @author chen
 *
 */
public class LocationListener implements AMapLocationListener {
private Handler mHandler=null;
    public LocationListener(Handler handler)
    {
    this.mHandler=handler;
    }
@Override
public void onLocationChanged(AMapLocation amapLocation) {
// TODO Auto-generated method stub
if (amapLocation != null) {
       if (amapLocation.getErrorCode() == 0) {
       //定位成功回调信息,设置相关消息
       amapLocation.getLocationType();//获取当前定位结果来源,如网络定位结果,详见定位类型表
       amapLocation.getLatitude();//获取纬度
       amapLocation.getLongitude();//获取经度
       amapLocation.getAccuracy();//获取精度信息
       amapLocation.getAddress();//地址,如果option中设置isNeedAddress为false,则没有此结果,网络定位结果中会有地址信息,GPS定位不返回地址信息。
       amapLocation.getCountry();//国家信息
       amapLocation.getProvince();//省信息
       amapLocation.getCity();//城市信息
       amapLocation.getDistrict();//城区信息
       amapLocation.getStreet();//街道信息
               amapLocation.getStreetNum();//街道门牌号信息
       amapLocation.getCityCode();//城市编码
       amapLocation.getAdCode();//地区编码
               amapLocation.getAoiName();//获取当前定位点的AOI信息
               mHandler.sendMessage(Message.obtain(mHandler,110,amapLocation));
   } else {
             //显示错误信息ErrCode是错误码,errInfo是错误信息,详见错误码表。
       Log.e("AmapError","location Error, ErrCode:"
           + amapLocation.getErrorCode() + ", errInfo:"
           + amapLocation.getErrorInfo());
       }
   }
}


}


0 0
原创粉丝点击