如何使用setbounds来居中标记

时间:2016-09-06 12:20:31

标签: javascript google-maps

我有一张地图,其中包含多个带有infowindows的标记。我需要一种方法让地图使用所有标记周围的setbounds来居中 - 这样它们都是可见的。

这是我的代码: https://jsfiddle.net/nickbuus/kzsetxke/

我已经看过如何使用setbounds的示例 - 但是当我使用循环时,我不确定在何处设置地图的边界。这是我的循环:

 for (var i = 0; i < locations.length; i++) {
    gmarkers[locations[i][0]] =
    createMarker(new google.maps.LatLng(locations[i][3], locations[i][4]),      locations[i][1] + "<br>" + locations[i][2]);

1 个答案:

答案 0 :(得分:3)

您可以创建新的google.maps.LatLngBounds并在创建标记时,使用getPosition()方法按标记位置扩展此边界,如下所示:

// Create bounds    
var bounds = new google.maps.LatLngBounds();

// Create marker for each location
for (var i = 0; i < locations.length; i++) {
    var m = createMarker(new google.maps.LatLng(locations[i][3], locations[i][4]), locations[i][1] + "<br>" + locations[i][2]);
    gmarkers[locations[i][0]] = m;

    // Extend bound by the marker position
    bounds.extend(m.getPosition());
}

// Fit map
map.fitBounds(bounds);

以下是您提到的更改https://jsfiddle.net/tez50m5t/

的原始小提琴