0

所以在我当前的应用程序中,我想缩放到一个纬度/经度点,但也使用 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
            }

这种工作,但发生的是我的线程开始,在“动画到”完成之前,所以它放大然后“跳跃”以显示正确的中心地理点。有没有办法平滑地“向下钻取”到某个缩放级别,并同时移动到 geoPoint?类似于官方的 Googl eMaps 应用程序如何在您搜索地址后缩放到地址,这就是我想要做的。

4

1 回答 1

1

我会做类似的事情:

_mapController.animateTo(new GeoPoint(googleLat,googleLong), new Runnable() {
 public void run()
 {
  _mapController.zoomIn ();
 }
});

这将实现平移然后缩放的效果。您可以在 runnable 中尝试相同的逻辑来执行多步放大。

于 2012-07-27T20:36:30.183 回答