在地图应用中,有时我们希望在缩放级别达到一定程度时才显示标记(marker)。这可以提高地图的性能,尤其是在缩放级别较低、标记数量较多的情况下。以下是一种优化且未被弃用的方式来实现这一功能:
google.maps.event.addListener
监听缩放事件google.maps.event.addListener
监听地图的缩放事件。以下是一个示例代码:
function initMap() {
const map = new google.maps.Map(document.getElementById('map'), {
center: { lat: -34.397, lng: 150.644 },
zoom: 8
});
// 创建标记,但不要立即添加到地图上
const marker = new google.maps.Marker({
position: { lat: -34.397, lng: 150.644 },
map: null, // 初始时设置为null
title: 'Hello World!'
});
// 监听缩放事件
google.maps.event.addListener(map, 'zoom_changed', function() {
const zoomLevel = map.getZoom();
if (zoomLevel >= 10) {
// 如果缩放级别大于等于10,显示标记
marker.setMap(map);
} else {
// 否则隐藏标记
marker.setMap(null);
}
});
}
map
属性初始设置为 null
,这样标记就不会立即显示在地图上。google.maps.event.addListener
监听地图的 zoom_changed
事件。marker.setMap(map)
或 marker.setMap(null)
来显示或隐藏标记。这种方法不仅优化了性能(特别是在标记数量较多时),而且使用了 Google Maps JavaScript API 的标准方法,确保代码在未来不会被弃用。
领取专属 10元无门槛券
手把手带您无忧上云