2012-03-19 11 views
15

遠くの検索フィルターがあります。これには、ベースマーカーを設定できるマップビューポートと、入力距離をキロメートル単位で入力できるテキストボックスがあります。どのようにGoogleマップのサークルは、地図に合わせて

次に、この距離を地図上に表示するには、ビューポートでcircleを使用します。

質問:円に収まるように地図をズームするにはどうすればよいですか?

答えて

38

google.maps.Circleは、円のLatLngBounds10を返すgetBounds()メソッドを持っています。サークルを使用している場合は、google.maps.Map.fitBounds()

の引数として、この境界を使用することができ、あなたはこれを行うことができます。

map.fitBounds(circle.getBounds()); 

を...のinit関数の最後で。複数の円については

http://jsfiddle.net/doktormolle/MHLjy/

+0

この単純なを。ありがとうございました。私はmap.fitBounds()を使いましたが、サークルにgetBoundsがあることに気付かなかった。とても素敵です:) –

+0

非常に良いおかげで –

15

組合の代わりを拡張使用:

var bounds = new google.maps.LatLngBounds(); 

$.each(circles, function(index, circle){ 
    bounds.union(circle.getBounds()); 
}); 

map.fitBounds(bounds); 
+1

ニース。私はこれを使って少なくとも*探索半径の円が包囲されていることを確認した後、latlngBounds.extend(marker.getPosition())を使ってマーカーの範囲をさらに拡張しました。 – Jon

関連する問題