我想将 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
格雷的想法很棒,但不能按原样工作。我不得不为zoomToMarkers API V3 设计一个 hack:
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);
}
}