所以在我当前的应用程序中,我想缩放到纬度/经度,但也使用animateTo(或等效的)来确保屏幕正确居中。目前我正在做这样的事情:
_mapController.animateTo(new GeoPoint(googleLat, googleLng));
// Smooth zoom handler
int zoomLevel = _mapView.getZoomLevel();
int targetZoomLevel = AppConstants.MAP_ZOOM_LEVEL_SWITCH;
long delay = 0;
while (zoomLevel++ < targetZoomLevel) {
handler.postDelayed(new Runnable() {
@Override
public void run() {
_mapController.zoomIn();
}
}, delay);
delay += 350; // Change this to whatever is good on the device
}
这种作品,但发生的事情是我的线程开始,在'animate to'完成之前,所以它放大然后'jumps'以显示正确的中心geoPoint。有没有办法顺利“向下钻取”到某个缩放级别,同时移动到geoPoint?类似于官方Googl eMaps应用程序在您搜索之后缩放到某个地址的方式,这就是我想要做的事情。
答案 0 :(得分:1)
我会做类似的事情:
_mapController.animateTo(new GeoPoint(googleLat,googleLong), new Runnable() {
public void run()
{
_mapController.zoomIn ();
}
});
这将实现平移然后缩放效果。您可以在runnable中尝试相同的逻辑来执行多步骤缩放。