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

lar*_*ryq 7 google-maps-api-3

我正在使用谷歌地图的V3版本,并想知道如何去做 - 我有一个google.maps.Markers他们的LatLng位置设置的阵列.

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

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

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

MrU*_*own 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);
}
Run Code Online (Sandbox Code Playgroud)

就如此容易!


geo*_*zip 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);
Run Code Online (Sandbox Code Playgroud)