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
            }

この種の動作は機能しますが、「animate to」が終了する前にスレッドが開始するため、ズームインしてから「ジャンプ」して正しい中心のgeoPointを表示します。特定のズームレベルまでスムーズに「ドリルダウン」すると同時に、geoPointに移動する方法はありますか?あなたがそれを検索した後に公式のグーグルeMapsアプリケーションがアドレスにズームする方法と同様に、私が探しているのはそれです。

4

1 に答える 1

1

私は次のようなことをします:

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

これにより、パンしてからズームする効果が得られます。ランナブル内で同じロジックを試して、マルチステップのズームインを実行できます。

于 2012-07-27T20:36:30.183 に答える