您的位置:首页 > 其它

安卓开发-百度地图-利用LocationClient定位到当前位置

2017-10-02 21:46 288 查看
1.定义 定位客户端 并且用getApplicationContext()【官方推荐】初始化:

LocationClient mBdLocationManager = new LocationClient(getApplicationContext());


2.为定位客户端配置定位所需要的参数:

LocationClientOption lcOption = new LocationClientOption();

//设置定位模式:高精度,低功耗,仅设备
lcOption.setLocationMode(LocationMode.Hight_Accuracy);
//设置坐标系
lcOption.setCoorType("bd09ll");
//设置GPS打开
lcOption.setOpenGps(true);
//设置需要地址信息
lcOption.setIsNeedAddress(true);
//设置每秒更新一次位置信息
lcOption.setScanSpan(1000);
//设置需要位置描述信息
lcOption.setIsNeedLocationDescribe(true);

mBdLocationManager.setLocOption(lcOption);


3.为位置客户端注册位置监听器并实现:

mBdLocationManager.registerLocationListener(mBdLocationListener);

private BDAbstractLocationListener mBdLocationListener = new BDAbstractLocationListener() {
//当位置对象为空或者因为退出而到时地图对象销毁为空时,不监听
public void onReceiveLocation(BDLocation location) {
if (location == null || mMapView == null)
return;

Log.v("aaa","方向:" + location.getDirection() + ",纬度:" + location.getLatitude()
+ ",经度:" + location.getLongitude()
+ ",时间:" + location.getTime() + ",描述:"
+ location.getLocationDescribe() + ",地址:" + location.getAddrStr() + ",精度:" + location.getRadius());
}
};


4.定位客户端开始启动定位:

mBdLocationManager.start();


5.实现定位到当前位置并且有图标:

5.1:地图对象开启定位图层:


mBaiduMap.setMyLocationEnabled(true);


5.2:地图对象设置定位时的地图缩放级别(500米):


mBaiduMap.setMapStatus(MapStatusUpdateFactory.zoomTo(15.0f));


5.3:为地图对象设置定位数据:精度,方向,经度,纬度


MyLocationData locData = new MyLocationData.Builder()
.accuracy(location.getRadius())
.latitude(location.getLatitude())
.longitude(location.getLongitude())
.direction(100)
.build();

mBaiduMap.setMyLocationData(locData);


5.4:为地图对象配置参数:定位方式(罗盘态,跟随态,常态),是否允许显示方向,用户自定义显示图标:


MyLocationConfiguration myLocConfig = new MyLocationConfiguration(locationMode, true, mLocBitmap);

mBaiduMap.setMyLocationConfiguration(myLocConfig);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  百度地图定位
相关文章推荐