js fiddle に小さなスニペットをまとめたので、私が何を扱っているかがわかります。
基本的に、「ズーム」ボタンを接続して、パスが作成されたらズームボタンをクリックすると、マップがパスに合わせてズームできるようにしようとしています。私が見つけたすべての答えは、私が持っていないマーカーの配列を持つことで機能します。どんな提案でも大歓迎です。
js fiddle に小さなスニペットをまとめたので、私が何を扱っているかがわかります。
基本的に、「ズーム」ボタンを接続して、パスが作成されたらズームボタンをクリックすると、マップがパスに合わせてズームできるようにしようとしています。私が見つけたすべての答えは、私が持っていないマーカーの配列を持つことで機能します。どんな提案でも大歓迎です。
実際、マーカーの配列があります。Polyline
ユーザーがマップをクリックすると、作成している に保存されます。ユーザーがクリックしたポイントを取得するには、単純に を使用しますPolyline.getPath()
。次に、それらのポイントを (geocodezip で述べたように)LatLngBounds
オブジェクトに追加google.maps.Map.fitBounds()
し、指定された境界にマップ ビューを調整するために使用できます。
これは、提供したコード例に基づいた zoom メソッドの簡単な実装です (ここで動作することがわかります)。
function zoom() {
var bounds = new google.maps.LatLngBounds();
geodesic.getPath().forEach(function(latLng) {
bounds.extend(latLng);
});
map.fitBounds(bounds);
}
マーカーで見た例と同様に、パス内のすべての google.maps.LatLngs を google.maps.LatLngBounds オブジェクトに追加し (bounds.extend() を使用)、結果の境界オブジェクトで map.fitBounds を呼び出します。