package com.network.duoduo;
import android.content.Context;
import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.location.LocationClientOption.LocationMode;
import com.base.duoduo.Config;
import com.base.duoduo.MyShared;
//定位类
public class Position {
protected Context mContext;
//百度地图
protected LocationClient mLocationClient = null;
protected BDLocationListener myListener = new MyLocationListener();
public Position(Context context){
this.mContext = context;
}
public void initParam(){
mLocationClient = new LocationClient(mContext.getApplicationContext()); //声明LocationClient类
LocationClientOption option = new LocationClientOption();
option.setLocationMode(LocationMode.Hight_Accuracy);//设置定位模式
option.setCoorType("bd09ll");//返回的定位结果是百度经纬度,默认值gcj02
option.setScanSpan(10*1000);//设置发起定位请求的间隔时间为10分钟
option.setIsNeedAddress(true);//返回的定位结果包含地址信息
option.setNeedDeviceDirect(true);//返回的定位结果包含手机机头的方向
option.setAddrType("all");
mLocationClient.setLocOption(option);
mLocationClient.registerLocationListener( myListener ); //注册监听函数
}
//启动SDK
public void start(){
mLocationClient.start();
}
//停止SDK
public void stop(){
mLocationClient.stop();
}
//百度地图地理位置
public class MyLocationListener implements BDLocationListener {
@Override
public void onReceiveLocation(BDLocation location) {
if (location == null) return ;
MyShared mMyShared = new MyShared(mContext,Config.DW_CONFIG_NAME);
mMyShared.putValue("dw_times",location.getTime());
mMyShared.putValue("dw_addr",location.getAddrStr());
mMyShared.putValue("dw_province",location.getProvince());
mMyShared.putValue("dw_city",location.getCity());
mMyShared.putValue("dw_district",location.getDistrict());
mMyShared.putValue("dw_latitude",String.valueOf(location.getLatitude()));
mMyShared.putValue("dw_longitude",String.valueOf(location.getLongitude()));
mMyShared.putValue("dw_tadius",String.valueOf(location.getRadius()));
mMyShared.putValue("dw_direction",String.valueOf(location.getDirection()));
}
}
}