0

繰り返しになりますが、Google Map API v3 で奇妙な小さな問題が発生しました。簡単なことを見落としていたと思いますが、何時間も答えを探した後、私は助けを求める準備ができています.

クリックでズームインする方法を最終的に理解したポリゴン形状があります...ただし、シングルクリックでポリゴンにズームインする代わりに、ダブルクリックが必要です。私を困惑させているのは、スクリプトがワンクリック用であることです。これが私が言及しているスクリプトの部分です:

    // Add a listener for the click event
  google.maps.event.addListener(zone1, 'center_changed', function() {     
      window.setTimeout(function() {
          map.panTo(marker.position());
      }, 1000);
  });

  google.maps.event.addListener(zone1, 'click', function() {
      map.setCenter(marker.position(29.737, -95.394),
      map.setZoom(18)
      );
  });

作業ページへのリンクは次のとおりです: http://www.conleym.com/map/google_maps_code_9_zoom.html *現在ズームするように設定されている唯一のポリゴンは、ポリゴン 1 - マップの上部にある青い形状です。

Firefox(23)、IE(9)、Chrome(16) でテストしましたが、すべて同じ結果でした。

4

1 に答える 1

1

マップをポリゴンの「境界」にズームする必要があると仮定します(ポリゴン全体を表示するため)。その場合、(ゾーンごとに)次のようなことができます。ポリゴンの「center_changed」リスナーを削除します。

zone1._myBounds = new google.maps.LatLngBounds();
for (var i=0; i<triangleCoords.length; i++)
{
   zone1._myBounds.extend(triangleCoords[i]);
}

google.maps.event.addListener(zone1, 'click', function () {
  map.fitBounds(zone1._myBounds);
});

実施例

このアプローチはあまり拡張できないことに注意してください (ポリゴンのデータを取得し、これをすべて実行してから、後で使用するために参照を配列にプッシュする関数を作成することをお勧めします)。

于 2012-12-04T17:43:33.890 に答える