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);
	}
注:在描述中如果出现问题,希望大家能够指正。

你可能感兴趣的:(Android开发问题集)