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

文档全面上新

更科技的视觉体验,更高效的页面结构,快前往体验吧!

体验新版
定位图标指示方向
功能场景
定位图标根据用户面向的方向进行旋转,在路线规划、导航等场景中帮助用户更加清晰的判断移动方向。
Android
iOS
//mapopen-website-wiki.bj.bcebos.com/demos/AndroidVideos/定位图标指示方向.mp4
1590746640|//mapopen-website-wiki.bj.bcebos.com/demos/newqrcodes/定位图标指示方向.png
扫码体验
使用产品
Android定位SDK|/index.php?title=android-locsdk
下载源码
//mapopen-website-wiki.bj.bcebos.com/demos/location/LocationDirectionDemo.zip
核心接口
接口
描述
备注
BaiduMap
setMyLocationEnabled(boolean enabled)
设置是否允许定位图层
地图SDK
BaiduMap
setMyLocationConfiguration(MyLocationConfiguration configuration)
设置定位图层配置信息,只有先允许定位图层后设置定位图层配置信息才会生效
地图SDK
BaiduMap
setMyLocationData(MyLocationData data)
设置定位数据, 只有先允许定位图层后设置数据才会生效
地图SDK
MyLocationConfiguration
MyLocationConfiguration(LocationMode mode, boolean enableDirection, BitmapDescriptor customMarker)
1.mode 定位图层显示方式, 默认为 LocationMode.NORMAL 普通态2.enableDirection 是否允许显示方向信息3.customMarker 设置用户自定义定位图标,可以为 null
地图SDK
MyLocationData.Builder
direction(float direction)
设置定位数据的方向信息
地图SDK
LocationClient
start()
启动定位sdk
定位SDK
LocationClient
setLocOption(LocationClientOption locOption)
给定位客户端设置参数
定位SDK
LocationClient
BDAbstractLocationListener
监听定位结果回调函数
定位SDK
重点关注
通过系统的方向传感器获取到方向角度,结合地图SDK中的定位图层功能实现方向指向。
核心代码
1.开启定位图层设置定位模式
JAVA
mBaiduMap.setMyLocationEnabled(true);
MyLocationConfiguration myLocationConfiguration = new MyLocationConfiguration(MyLocationConfiguration.LocationMode.NORMAL, true, null);
                
复制
深色
复制成功
2.获取传感器管理服务注册方向传感监听器
JAVA
// 获取传感器管理服务
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
// 为系统的方向传感器注册监听器
    mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION),
                SensorManager.SENSOR_DELAY_UI);
                
复制
深色
复制成功
3.获取传感器方向回调信息设置给定位图层
JAVA
/**
* 传感器方向信息回调
*/
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
    double x = sensorEvent.values[SensorManager.DATA_X];
    if (Math.abs(x - lastX) > 1.0) {
mCurrentDirection = (float) x;
// 构造定位图层数据
        myLocationData = new MyLocationData.Builder()
                .accuracy(mCurrentAccracy)
                // 此处设置开发者获取到的方向信息,顺时针0-360
                .direction(mCurrentDirection)
                .latitude(mCurrentLat)
.longitude(mCurrentLon).build();
        // 设置定位图层数据
        mBaiduMap.setMyLocationData(myLocationData);
    }
    lastX = x;
}
                
复制
深色
复制成功
  • 文档根本没法用

  • 文档水平很差

  • 文档水平一般

  • 文档不错

  • 文档写的很好

如发现文档错误,或对此文档有更好的建议,请在下方反馈。问题咨询请前往反馈平台提交工单咨询。

提交反馈

拖动标注工具

添加矩形标注

添加箭头标注

完成

取消