我正在Google地图上设置标记,获取位置,扩展范围并在地图上调用fitBounds
。
我正在这样添加他们:
let bounds = new google.maps.LatLngBounds();
for (i = 0; i < markers.length; i++)
{
bounds.extend(markers[i]);
}
map.fitBounds(bounds);
大约一半时间,地图未显示所有标记。它们确实很靠近边缘,但是在边缘之外,只有拖动地图或缩小1级,我才能看到丢失的标记。
我想添加一个事件侦听器,如果不是所有标记都可见,它将将缩放比例降低1级:
// Do other stuff to set up map
var map = new google.maps.Map(mapElement, myOptions);
// This is needed to set the zoom after fitbounds,
google.maps.event.addListener(map, 'zoom_changed', function() {
zoomChangeBoundsListener =
google.maps.event.addListener(map, 'bounds_changed', function(event) {
if (notAllMarkersAreVisible && this.initialZoom == true) {
// Change max/min zoom here
this.setZoom(this.getZoom() - 1);
this.initialZoom = false;
}
google.maps.event.removeListener(zoomChangeBoundsListener);
});
});
map.initialZoom = true;
map.fitBounds(bounds);
1)我的主要问题是如何确切知道标记是否可见,这意味着我需要设置为notAllMarkersAreVisible
条件吗?
2)这是处理以下情况的通用约定吗?在fitBounds
之后并非所有标记都可见?