Android中使用百度地图时定位到当前位置遇到的问题

问题描述:Android中百度地图进行定位,如果我们要将当前位置显示到地图上,在使用时我们会用到定位监听器,然后将获得到的位置对BaiduMap对象进行位置上的更新,达到显示当前位置的目的。由于我们在定位后还可能要进行自主的移动,则我们会用一个flag标识是否已经定位到当前的位置。但是在使用flag后,由于第一次定位,BaiduMap可能还未加载成功,导致地图无法移动到我们当前位置。

解决方式:在地图移动成功后再进行flag的修改。

改后的代码:

	/*移动到指定位置*/
	private void navigateTo(BDLocation location){
	    if (isFirstLocate){
	        LatLng ll = new LatLng(location.getLatitude(),location.getLongitude());
	        MapStatusUpdate update = MapStatusUpdateFactory.newLatLng(ll);
	        mBaiduMap.animateMapStatus(update);
	        update = MapStatusUpdateFactory.zoomTo(16f);
	        mBaiduMap.animateMapStatus(update);
	        /*判断baiduMap是已经移动到指定位置*/
	        if (mBaiduMap.getLocationData()!=null)
	        if (mBaiduMap.getLocationData().latitude==location.getLatitude()
	                &&mBaiduMap.getLocationData().longitude==location.getLongitude()){
	            isFirstLocate = false;
	        }
	    }
	    MyLocationData.Builder locationBuilder =
	            new MyLocationData.Builder();
	    locationBuilder.latitude(location.getLatitude());
	    locationBuilder.longitude(location.getLongitude());
	    MyLocationData locationData = locationBuilder.build();
	    mBaiduMap.setMyLocationData(locationData);
	}
注:在描述中如果出现问题,希望大家能够指正。

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值