如何在Google Maps MarkerClusterer配置中结合Renderer与gridSize
解决Google Maps MarkerClusterer调整gridSize的问题
你之前的尝试都没找对配置位置,新版的MarkerClusterer(即你通过unpkg引入的@googlemaps/markerclusterer)里,gridSize是直接作为初始化配置的顶层属性,不需要嵌套在GridOptions里,也和Renderer、单个Marker的配置无关。
正确的写法是把gridSize直接加到你的config对象里,数值单位是像素,值越大,聚类范围越广,生成的集群就越大,地图上的单个标记就越少:
let renderer = { render: ({ count, position }) => new google.maps.Marker({ label: { text: String(count), color: "transparent", }, position, icon: { url: mapOperator.imageBasePath + "pin-cluster-1.png", }, zIndex: Number(google.maps.Marker.MAX_ZINDEX) + count, }), }; // 直接在config里添加gridSize属性 let config = { map, markers, renderer, gridSize: 100 // 可根据需求调整数值,比如100像素 }; let cluster = new markerClusterer.MarkerClusterer(config);
简单说明:gridSize定义了聚类网格的边长,当多个标记落在同一个网格范围内时,就会被聚合成一个集群。调大这个值,会让更多标记被归到同一集群中,从而减少地图上单个标记的数量。
内容的提问来源于stack exchange,提问作者ReflectionFE
相关产品推荐
相关产品推荐

