【发布时间】:2020-08-10 02:51:04
【问题描述】:
我在 javascript 中使用 Google Map 时遇到问题,我无法使所有标记都适合边界。只有第一个标记可见。 这是控制台中抛出的错误:
未捕获的异常:InvalidValueError: not a LatLngBounds or LatLngBoundsLiteral: not an Object
这是我正在使用的代码:
var map = new google.maps.Map(document.getElementById('map'), {
center: {lat: parseFloat(lat), lng:parseFloat(lng)},
zoom: 11
});
var bounds = new google.maps.LatLngBounds();
for(var i = 0; i < coordinates.length; i++){
var coords = {lat: parseFloat(lat), lng:parseFloat(lng)}
var marker = new google.maps.Marker({position: coords, map: map});
var infowindow = new google.maps.InfoWindow();
infowindow.setContent(lat);
infowindow.open(map, marker);
bounds.extend(marker.position);
}
map.setCenter(bounds.getCenter());
map.fitBounds(bounds);
我在地图上有 4 个标记,但地图被缩放并以最后一个添加为中心,如下图所示:
如果我缩小地图,我可以看到所有其他标记,但 fitbounds 无法使所有标记都适合边界。
【问题讨论】:
-
请提供一个 minimal reproducible example 来证明您的问题(包括任何必需的数据),最好是 StackOverflow 代码 sn-p。请注意,
marker.position不是记录属性,map.bounds也不是(并且可能希望成为bounds)
标签: javascript google-maps fitbounds