x 量の地理位置情報を Google Maps API に渡し、これらの位置を中心にして適切なズーム レベルを設定し、すべての位置が地図上に表示されるようにしたいと考えています。つまり、現在マップ上にあるすべてのマーカーを表示します。
これは Google Maps API がデフォルトで提供するもので可能ですか、それとも自分で構築するために解決する必要がありますか?
x 量の地理位置情報を Google Maps API に渡し、これらの位置を中心にして適切なズーム レベルを設定し、すべての位置が地図上に表示されるようにしたいと考えています。つまり、現在マップ上にあるすべてのマーカーを表示します。
これは Google Maps API がデフォルトで提供するもので可能ですか、それとも自分で構築するために解決する必要がありますか?
各ポイントにfitBounds (API V3)を使用しました。
変数を宣言します。
var bounds = new google.maps.LatLngBounds();
FOR ループで各マーカーを通過する
for (i = 0; i < markers.length; i++) {
var latlng = new google.maps.LatLng(markers[i].lat, markers[i].lng);
bounds.extend(latlng);
}
最後に電話
map.fitBounds(bounds);
V3 にはzoomToMarkersがあります
Gray's Idea is great but does not work as is. I had to work out a hack for a zoomToMarkers API V3:
function zoomToMarkers(map, markers)
{
if(markers[0]) // make sure at least one marker is there
{
// Get LatLng of the first marker
var tempmark =markers[0].getPosition();
// LatLngBounds needs two LatLng objects to be constructed
var bounds = new google.maps.LatLngBounds(tempmark,tempmark);
// loop thru all markers and extend the LatLngBounds object
for (var i = 0; i < markers.length; i++)
{
bounds.extend(markers[i].getPosition());
}
// Set the map viewport
map.fitBounds(bounds);
}
}