Im對CameraUpdateFactory.newLatLngBounds()的moveCamera和animateCamera的準確性有一些懷疑。我將創建和發送的LatLngBounds對象作爲參數moveCamera/animateCamera(CameraUpdateFactory.newLatLngBounds())進行比較,以地圖 .getProjection()。getVisibleRegion()。onCameraChange()事件中的latLngBounds甚至GoogleMap.CancelableCallback#onFinish ()。 它們不匹配。 有人遇到過這個問題嗎?這是一個錯誤?谷歌地圖moveCamera或animateCamera根據LatLngBounds是不準確的
我的代碼是:
final LatLngBounds boundingBox = MapUtils.getBoundingBox(mCurrLocation.getLatitude(), mCurrLocation.getLongitude(), mCurrRadius);
try {
if (animate) {
map.animateCamera(CameraUpdateFactory.newLatLngBounds(boundingBox, 0),
new GoogleMap.CancelableCallback() {
@Override
public void onFinish() {
if (!boundingBox.equals(map.getProjection().getVisibleRegion().latLngBounds)) {
map.moveCamera(CameraUpdateFactory.newLatLngBounds(boundingBox, 0));
}
}
@Override
public void onCancel() {
}
});
} else {
map.moveCamera(CameraUpdateFactory.newLatLngBounds(boundingBox, 0));
}
}
請忽略IM的方式在這裏(等於)比較兩個對象。我還調試代碼和檢查的2個對象,發現它們不匹配 -
moveCamera:
boundingBox的 -
的LatLngBounds {西南=緯度/經度:(32.08455383290544 ,34.773394063736845),東北=緯度/經度:(32.09730731777191,34.788375176773286)}
map.getProjection()getVisibleRegion()的LatLngBounds -
的LatLngBounds。{西南=緯度/經度:(32.084496299473756,34.77339383214712),東北=緯度/經度:(32.09736452396455,34.78837497532368)}
animateCamera:
boundingBox的 -
層的LatLngBounds {西南=緯度/經度:(40.70798493778415,-74.01434069136418),東北=緯度/經度:(40.72072004852845,-73.99760391411343)}
map.getProjection()getVisibleRegion()的LatLngBounds - 。
的LatLngBounds {西南=緯度/經度:(40.70798500292429,-74.01539381593466),東北=緯度/經度:(40.72071968970514,-73.99655096232891)}
我知道這是一箇舊的線程,但我有同樣的問題,仍然沒有解決方案可用於此錯誤。我已經在十幾款不同的手機上測試過它,而這隻發生在三星GT-I9500上。 –