Android 如何调整缩放级别以适应边界,然后在标记偏移中调整中心地图?
我有一个谷歌地图(com.google.android.gms.maps.GoogleMap),在那里我设置了一些标记 我可以单独 1) 调整缩放级别并使地图在边界上居中:Android 如何调整缩放级别以适应边界,然后在标记偏移中调整中心地图?,android,google-maps,google-maps-android-api-2,Android,Google Maps,Google Maps Android Api 2,我有一个谷歌地图(com.google.android.gms.maps.GoogleMap),在那里我设置了一些标记 我可以单独 1) 调整缩放级别并使地图在边界上居中: mMap.animateCamera(CameraUpdateFactory.newLatLngBounds(getZoomBounds(), 10)); 及 2) 将地图居中放置在其中一个标记上方: LatLng poiSelectedLatLng = new LatLng(markerSelected.getPosit
mMap.animateCamera(CameraUpdateFactory.newLatLngBounds(getZoomBounds(), 10));
及
2) 将地图居中放置在其中一个标记上方:
LatLng poiSelectedLatLng = new LatLng(markerSelected.getPosition().latitude
+ offset, markerSelected.getPosition().longitude);
mMap.animateCamera(CameraUpdateFactory.newLatLng(poiSelectedLatLng));
但是,就我个人而言,我不能两者兼而有之,使用newLatLngBounds调整缩放级别,然后在其他地方将地图居中。我最后做的事就是我在地图上看到的事情
如何操作?尝试同时使用
moveCamera
和animateCamera
mMap.moveCamera(CameraUpdateFactory.newLatLngBounds(getZoomBounds(), 10));
LatLng poiSelectedLatLng = new LatLng(markerSelected.getPosition().latitude
+ offset, markerSelected.getPosition().longitude);
mMap.animateCamera(CameraUpdateFactory.newLatLng(poiSelectedLatLng));
moveCamera
将直接移动到该点,而animateCamera
将提供移动效果。它们在本质上是线性的,所以一个接一个地发生,但是像我上面所做的那样将它们分层将提供您正在寻找的潜在效果
如果您试图在UI上查看两个调用的实际移动,则需要在动画完成后注册回调 对于未来的访问者,您可以通过以下方式链接摄影机动画:
map.animateCamera(CameraUpdateFactory.newLatLngBounds(getZoomBounds(), 10), 2000, new CancelableCallback() {
@Override
public void onFinish() {
LatLng poiSelectedLatLng = new LatLng(markerSelected.getPosition().latitude + offset, markerSelected.getPosition().longitude);
map.animateCamera(CameraUpdateFactory.newLatLng(poiSelectedLatLng));
}
@Override
public void onCancel() {
}
});
另请参见如何无限链接的示例。不需要事件总线、线程或其他任何东西来链接两个animateCamera调用。动画结束时会有一个回调。互联网上有用的信息太少了,这是其中的一部分。