调整谷歌地图的大小以适合一组标记

时间:2013-05-02 06:09:17

标签: google-maps-api-3

我正在使用V3版本的谷歌地图,并想知道如何解决这个问题 - 我有一个google.maps.Markers数组,其LatLng位置设置。

我想循环遍历数组并找到标记的最小/最大纬度和经度值,并居中并调整地图大小,以便所有标记都适合屏幕,并具有较小的软糖因子。

循环通过我可以处理的标记数组,但是我不确定如何对齐地图并调整地图大小以适应它们(周围有一个小的边界区域,因此没有标记与边缘齐平。)< / p>

我不确定这是否有帮助或重要,但地图所在的<div>是320x200像素。

2 个答案:

答案 0 :(得分:12)

您可以创建类似

的功能
function setBounds() {

    var bounds = new google.maps.LatLngBounds();
    for (var i=0; i < markersArray.length; i++) {
        bounds.extend(markersArray[i].getPosition());
    }
    map.fitBounds(bounds);
}

就这么简单!

答案 1 :(得分:5)

请参阅the google.maps.Map fitBounds method

将标记的所有位置添加到空的google.maps.LatLngBounds对象中,然后在其上调用fitBounds。

var bounds = new google.maps.LatLngBounds();
for (var i=0; i < yourArrayOfMarkers.length; i++) {
   bounds.extend(yourArrayOfMarkers[i].getPosition();
}
yourMap.fitBounds(bounds);