7

我正在使用谷歌地图的 V3 版本,并且想知道如何去做——我有一个数组,google.maps.Markers它们的LatLng位置已经设​​置好了。

我想遍历数组并找到标记的最小/最大纬度和经度值,并将地图居中并调整大小,使所有标记都适合屏幕,并带有一个小的软糖因子。

循环遍历我可以处理的标记数组,但我不确定如何将地图居中并调整其大小以适应所有地图(周围有一个小的边界区域,因此没有标记与边缘齐平。)

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

4

2 回答 2

13

您可以创建一个函数,如

function setBounds() {

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

就如此容易!

于 2013-05-02T09:19:22.513 回答
5

请参阅google.maps.Map fitBounds 方法

将标记的所有位置添加到一个空的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);
于 2013-05-02T07:04:30.030 回答