一、百度地图定位
//1、设置标尺 更好地看清楚地图
MapStatusUpdate zoomTo = MapStatusUpdateFactory.zoomTo(15.0F);//大约500米 英尺为单位
mBaiduMap.setMapStatus(zoomTo);
//2、定位相关的 创建、注册监听器、设置初始化参数
LocationClient mLocationClient = new LocationClient(this); //创建定位对象
XGJKBDLocationListener mXgjkbdLocationListener = new XGJKBDLocationListener(); //创建定位监听
mLocationClient.registerLocationListener(mXgjkbdLocationListener); //注册监听
LocationClientOption option =new LocationClientOption();//定位的参数设置option.setCoorType("bd09ll");//coor类型 固定参数 option.setIsNeedAddress(true);//是否需要地址option.setOpenGps(true);//开启gps option.setScanSpan(1000);//刷新的频率mLocationClient.setLocOption(option);//设置参数
//3、地图展示的中心图标
BitmapDescriptor mIconLocation = BitmapDescriptorFactory.fromResource(R.mipmap.ic_launcher);
//地图的模式、三种 普通、罗盘、跟随模式
mLocationMode = MyLocationConfiguration.LocationMode.NORMAL;
//4、定位的监听器
class XGJKBDLocationListener implements BDLocationListener {
@Override
public void onReceiveLocation(BDLocation bdLocation) {//接收到定位信息
//处理定位信息
MyLocationData data = new MyLocationData.Builder()
.accuracy(bdLocation.getRadius())
.latitude(bdLocation.getLatitude())
.longitude(bdLocation.getLongitude())
.build();
//设置定位
mBaiduMap.setMyLocationData(data);
MyLocationConfiguration configuration = new MyLocationConfiguration(mLocationMode, true,mIconLocation);
mBaiduMap.setMyLocationConfiguration(configuration);//设置地图模式、地图icon
//获取经纬度
mLatitude = bdLocation.getLatitude();
mLongitude = bdLocation.getLongitude();
//如果是第一次定位 需要定位当前位置
if (isFirstInMap) {//默认为 true
LatLng latLng = new LatLng(bdLocation.getLatitude(), bdLocation.getLongitude());
MapStatusUpdate update = MapStatusUpdateFactory.newLatLng(latLng);
mBaiduMap.animateMapStatus(update);//更新当前坐标
isFirstInMap = false;//打印当前的/
Toast.makeText(MainActivity.this, bdLocation.getAddrStr(), Toast.LENGTH_LONG).show();
}
}
@Override
public void onConnectHotSpotMessage(String s, int i) {
}
}
二、精确定位
需要在AndroidMainfest中添加百度地图服务
<!--百度地图的service-->
<service
android:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote" >
<intent-filter>
<action android:name="com.baidu.location.service_v2.2"/>
</intent-filter>
</service>
三、开启和关闭百度地图
@Override
protected void onStart() {
super.onStart();
mBaiduMap.setMyLocationEnabled(true);
if (!mLocationClient.isStarted()) {
mLocationClient.start();//开启定位
mMyOrientaionListener.start();
}
}
@Override
protected void onStop() {
super.onStop();
mBaiduMap.setMyLocationEnabled(false);
mLocationClient.stop();//关闭
mMyOrientaionListener.stop();
}