2

ズームGoogleマップAPIを個別のズームに制限できますか?つまり、ズーム2と6のみを使用でき、2-3-4-5-6は使用できません。最小ズームと最大ズームがあることを確認しましたが、ズームが1つだけの範囲に収まるようにしたくありません。

よろしく、ヨッシ

4

3 に答える 3

3

これを模倣することしかできません。APIでは、ズームを見逃すことはできません。

zoom_changedイベントは、変更について何も通知しなくなりました。バージョン2では、古いズームレベルと新しいレベルを知ることができました。

したがって、バージョン3では推測する必要があります。

ズーム2にいて、ユーザーがズームインすると、APIはズーム3に移動します。したがって、zoom_changedイベントをインターセプトして、マップがレベル3になったかどうかをテストし、レベル6にすることができます。他の方向:マップをレベル5(6から)にする必要がある場合は、2にします。

// Untested code
google.maps.event.addListener(map,'zoom_changed',function () {
    if (map.getZoom() == 3) map.setZoom(6);
    if (map.getZoom() == 5) map.setZoom(2);
});

ユーザーがズームスライダーを使用して2から5に直接移動する場合、これは役に立たないことに注意してください。イベントハンドラーは、現在のズームを5と見なし、1ステップ(6から)だけ移動したと想定して2に戻します。スライダーを使用してズーム4を取得する場合も、役に立ちません。これらの状況で何が起こるかを決定する必要があります。スライダーのない限られたマップコントロールのセットを使用することをお勧めします。

于 2012-05-21T13:18:21.610 に答える
1

マップをクリックすると、関数getZoom()を使用できます。ズームレベルが変更されているかどうかを確認します。次に、setZoomを使用して適切なズームレベルを設定します。ヘルプについては、ここをクリックしてください

于 2012-05-21T13:15:12.313 に答える
1

Zoom_changedイベントのリスナーを追加し、ズームを確認し、ズームが2に近いか6に近いかに応じてズームを設定できます。

('map'変数がマップのインスタンスを保持していると仮定します)

google.maps.event.addListener(map, 'zoom_changed', function() {

  var currentZoom = map.getZoom();
  if (currentZoom !== 2 && currentZoom !==6) {
    if (currentZoom <=4) {
      map.setZoom(2);
    } else {
      map.setZoom(6);
    }
  }

});
于 2012-05-21T13:22:40.140 に答える