Android中使用百度地图无法将地图移动到当前位置的问题

问题描述:地图无法跳转到当前位置

原代码:

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)
	        isFirstLocate = false;
	    }
	    MyLocationData.Builder locationBuilder =
	            new MyLocationData.Builder();
	    locationBuilder.latitude(location.getLatitude());
	    locationBuilder.longitude(location.getLongitude());
	    MyLocationData locationData = locationBuilder.build();
	    mBaiduMap.setMyLocationData(locationData);
	}
问题原因第二次更新会覆盖第一次更新,导致第一次更新被没有被执行
改后的代码:
 
 
private void navigateTo(BDLocation location){
    if (isFirstLocate){
        if (baiduMap.getLocationData() != null){
            if (baiduMap.getLocationData().latitude == location.getLatitude()
                    && baiduMap.getLocationData().longitude == location.getLongitude()){
                isFirstLocate = false;
            }
        }
        LatLng ll = new LatLng(location.getLatitude(), location.getLongitude());
        MapStatusUpdate update = MapStatusUpdateFactory.newLatLng(ll);
        baiduMap.animateMapStatus(update);
        update = MapStatusUpdateFactory.zoomBy(5f);
        //baiduMap移动到指定位置后,再进行第二次更新
        if (baiduMap.getLocationData() != null){
            if (baiduMap.getLocationData().latitude == location.getLatitude()
                    && baiduMap.getLocationData().longitude == location.getLongitude()){
                baiduMap.animateMapStatus(update);
                isFirstLocate = false;
            }
        }
    }

猜你喜欢

转载自blog.csdn.net/qq_29130429/article/details/77461219