android 定位与传感器,Android使用百度地图SDK实现定位与方向传感器匹配

public class MylocationListener implements BDLocationListener

{

//定位请求回调接口

private boolean isFirstIn=true;

//定位请求回调函数,这里面会得到定位信息

@Override

public void onReceiveLocation(BDLocation bdLocation) {

//BDLocation 回调的百度坐标类,内部封装了如经纬度、半径等属性信息

//MyLocationData 定位数据,定位数据建造器

/*

* 可以通过BDLocation配置如下参数

* 1.accuracy 定位精度

* 2.latitude 百度纬度坐标

* 3.longitude 百度经度坐标

* 4.satellitesNum GPS定位时卫星数目 getSatelliteNumber() gps定位结果时,获取gps锁定用的卫星数

* 5.speed GPS定位时速度 getSpeed()获取速度,仅gps定位结果时有速度信息,单位公里/小时,默认值0.0f

* 6.direction GPS定位时方向角度

* */

mLatitude= bdLocation.getLatitude();

mLongitude=bdLocation.getLongitude();

MyLocationData data= new MyLocationData.Builder()

.direction(mCurrentX)//设定图标方向

.accuracy(bdLocation.getRadius())//getRadius 获取定位精度,默认值0.0f

.latitude(mLatitude)//百度纬度坐标

.longitude(mLongitude)//百度经度坐标

.build();

//设置定位数据, 只有先允许定位图层后设置数据才会生效,参见 setMyLocationEnabled(boolean)

mBaiduMap.setMyLocationData(data);

//配置定位图层显示方式,三个参数的构造器

/*

* 1.定位图层显示模式

* 2.是否允许显示方向信息

* 3.用户自定义定位图标

*

* */

MyLocationConfiguration configuration

=new MyLocationConfiguration(locationMode,true,mIconLocation);

//设置定位图层配置信息,只有先允许定位图层后设置定位图层配置信息才会生效,参见 setMyLocationEnabled(boolean)

mBaiduMap.setMyLocationConfigeration(configuration);

//判断是否为第一次定位,是的话需要定位到用户当前位置

if(isFirstIn)

{

//地理坐标基本数据结构

LatLng latLng=new LatLng(bdLocation.getLatitude(),bdLocation.getLongitude());

//描述地图状态将要发生的变化,通过当前经纬度来使地图显示到该位置

MapStatusUpdate msu= MapStatusUpdateFactory.newLatLng(latLng);

//改变地图状态

mBaiduMap.setMapStatus(msu);

isFirstIn=false;

Toast.makeText(context, bdLocation.getAddrStr(), Toast.LENGTH_SHORT).show();

}

}

}

4.方向传感器与定位图标方向匹配操作:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值