我有一张地图,其中包含多个带有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]);
答案 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/
的原始小提琴