三 Android 程序开发——百度地图的使用 地图定位(定位+跟随+距离测量( 三 )


3.经纬度获取到以后,定位到自己的位置
//定位到用户当前位置private void showUserLocation() {LatLng latLng = new LatLng(user_latitude, user_longitude);MapStatusUpdate msu= MapStatusUpdateFactory.newLatLng(latLng);map.animateMapStatus(msu);}
@2显示跟随的箭头以及方向的切换(蓝色的小箭头)
第一种方式:百度自带(推荐)
1.设置定位支持,项目需要,我放入了()周期里
map.setMyLocationEnabled(true);
2.与之对应,取消定位支持,我放入()周期里
map.setMyLocationEnabled(false);
3.显示小箭头,这些操作我全部放在了( ) 函数里,因为每次返回时得值,可以定时改变小箭头的位置
【三Android 程序开发——百度地图的使用 地图定位(定位+跟随+距离测量】//位置信息监听@Overridepublic void onReceiveLocation(BDLocation bdLocation) {// 定位接口可能返回错误码,要根据结果错误码,来判断是否是正确的地址;int locType = bdLocation.getLocType();switch (locType) {case BDLocation.TypeCacheLocation:case BDLocation.TypeOffLineLocation:case BDLocation.TypeGpsLocation:case BDLocation.TypeNetWorkLocation:radius = bdLocation.getRadius();user_latitude = bdLocation.getLatitude();user_longitude = bdLocation.getLongitude();mCurrentX = bdLocation.getDirection();MyLocationData data = http://www.kingceram.com/post/new MyLocationData.Builder().accuracy(radius).direction(mCurrentX).latitude(user_latitude).longitude(user_longitude).build();map.setMyLocationData(data);MyLocationConfiguration config = new MyLocationConfiguration(MyLocationConfiguration.LocationMode.NORMAL, true, null);map.setMyLocationConfigeration(config);break;default:String s = bdLocation.getLocTypeDescription();break;}}
此方法采用百度给的方向和经纬度,显示的是百度默认的蓝色小箭头,
这里有两个点:1.蓝色小箭头的替换(自定义图片),2.的选择
1.蓝色小箭头替换成自定义图片
代码只需要改两句
MyLocationConfiguration config = new MyLocationConfiguration(MyLocationConfiguration.LocationMode.NORMAL, true, null);map.setMyLocationConfigeration(config);
原始第三个参数为null,即为默认的图片,即蓝色小箭头
BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromResource(R.mipmap.icon_head);MyLocationConfiguration config = new MyLocationConfiguration(MyLocationConfiguration.LocationMode.NORMAL, true, bitmapDescriptor);map.setMyLocationConfigeration(config);
将null替换成一个自定义的对象即可
2.的选择
分为三种:普通模式,跟随模式,罗盘模式
普通模式:简单的显示箭头,以及跟随方向变化,箭头方向变化ion..(第一张图)
跟随模式:在普通模式基础之上,无论地图移动到哪里,当返回函数获取到值的时候,立即定位到当前ion.. (第一张图)
罗盘模式:有指北针的的方向,类似于3D地图的视角,但不是3D的 ion..(第二张图)

三  Android 程序开发——百度地图的使用 地图定位(定位+跟随+距离测量

文章插图

三  Android 程序开发——百度地图的使用 地图定位(定位+跟随+距离测量

文章插图

三  Android 程序开发——百度地图的使用 地图定位(定位+跟随+距离测量

文章插图
第二种方式:只是改动了方向的获取方式,当时忽略了百度地图,用方向传感器做的,较麻烦,不推荐,供参考
1.开启方向传感器
//开启方向传感器//orientationListener.start();