浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。

Android 地图SDK

百度地图SDK是一套应用程序接口, 通过调用地图SDK接口,开发者可以轻松访问百度地图的服务和数据,构建功能丰富、交互性强的地图类应用程序。

本章节将对定位模式、变更定位图标icon、定位精度圈样式和大小等做进一步的说明。
坐标系说明

Android定位SDK产品,支持全球定位,能够精准的获取经纬度信息。根据开发者的设置,在国内获得的坐标系类型可以是:国测局坐标、百度墨卡托坐标 和 百度经纬度坐标。在海外地区,只能获得WGS84坐标。请开发者在使用过程中注意坐标选择。 定位SDK默认输出GCJ02坐标,地图SDK默认输出BD09ll

自定义定位模式、定位图标、精度圈颜色

MyLocationConfiguration通过重载构造方法 :

MyLocationConfiguration(LocationMode mode,
                        boolean enableDirection,
                        BitmapDescriptor customMarker,
                        int accuracyCircleFillColor,
                        int accuracyCircleStrokeColor)


用于设置定位的属性,包括定位模式、是否开启方向、设置自定义定位图标、精度圈填充颜色,精度圈边框颜色。更详细信息,请检索类参考

定位模式

地图SDK支持三种定位模式:NORMAL(普通态), FOLLOWING(跟随态), COMPASS(罗盘态)

mCurrentMode = LocationMode.FOLLOWING;//定位跟随态
mCurrentMode = LocationMode.NORMAL;   //默认为 LocationMode.NORMAL 普通态
mCurrentMode = LocationMode.COMPASS;  //定位罗盘态

自定义定位图标

支持自定义定位图标样式,替换定位icon

mCurrentMarker = BitmapDescriptorFactory .fromResource(R.drawable.icon_geo);

自定义精度圈填充颜色

accuracyCircleFillColor = 0xAAFFFF88;//自定义精度圈填充颜色

自定义精度圈边框颜色

accuracyCircleStrokeColor = 0xAA00FF00;//自定义精度圈边框颜色

定位精度圈大小

定位精度圈大小 ,是根据当前定位精度自动控制的,无法手动控制大小。精度圈越小,代表当前定位精度越高;反之圈越大,代表当前定位精度越低。

定位指针方向

定位指针朝向,是通过获取手机系统陀螺仪数据,控制定位指针的方向,需要开发者自己实现,并不在地图实现范畴。

在定义了以上属性之后,需要通过下面方法设置:

mBaiduMap.setMyLocationConfiguration(new MyLocationConfiguration(
                            mCurrentMode, true, mCurrentMarker,
                            accuracyCircleFillColor, accuracyCircleStrokeColor));

定位的频次自定义

定位的频次需要开发者自己设置 取定位的时间间隔,设置取定位坐标属于定位SDK范畴。

实现定位功能

使用百度定位SDK获取相应的位置信息,然后利用地图SDK中的接口,您可以在地图上展示实时位置信息,核心代码如下:

// 开启定位图层
mBaiduMap.setMyLocationEnabled(true);  

// 构造定位数据  
MyLocationData locData = new MyLocationData.Builder()  
    .accuracy(location.getRadius())  
    // 此处设置开发者获取到的方向信息,顺时针0-360  
    .direction(100).latitude(location.getLatitude())  
    .longitude(location.getLongitude()).build();  

// 设置定位数据  
mBaiduMap.setMyLocationData(locData);  

// 设置定位图层的配置(定位模式,是否允许方向信息,用户自定义定位图标)  
mCurrentMarker = BitmapDescriptorFactory  
    .fromResource(R.drawable.icon_geo);  
MyLocationConfiguration config = new MyLocationConfiguration(mCurrentMode, true, mCurrentMarker);  
mBaiduMap.setMyLocationConfiguration();  

// 当不需要定位图层时关闭定位图层  
mBaiduMap.setMyLocationEnabled(false);