聚类 google 地图时删除图钉

Remove pins when clustering google map

我在使用 google 地图聚类图钉时遇到问题。问题是在聚类完成后,图钉不会消失。

这里排列

var myLatLng = new google.maps.LatLng(lat,lng);
var marker_new = new google.maps.Marker({
                    position: myLatLng,
                    map: map
                  });
new_markers.push(marker_new);

阵列完成后

clusterStyles = [
        {
        textColor: '#ffffff',    
        opt_textColor: '#ffffff',
        url: mapfunctions_vars.path+'/cloud.png',
        height: 72,
        width: 72,
        textSize:15,

        }
    ];
    mcOptions = {
        gridSize: 100,
        ignoreHidden:true, 
        maxZoom: mapfunctions_vars.zoom_cluster, 
        styles: clusterStyles
    };
    var mcsluster;

    mcsluster = new MarkerClusterer(map, new_markers, mcOptions);
    mcsluster.setIgnoreHidden(true);

有什么办法可以删除它们吗?

我们在项目中做的一件事是在每次需要更新标记时使用下面的代码循环标记并清除它们。

                    for (var i = 0; i < new_markers.length; i++) {
                        // cleanup event listener reference
                        google.maps.event.clearInstanceListeners(new_markers[i]);
                        // cleanup marker instance
                        new_markers[i].setMap(null);
                    }
此外,我们使用的 MarketClusterer 对象上有一个 clearMarkers() 方法。我希望这能有所帮助。

不要在地图上添加标记,只需使用坐标创建它们。只需更改:

var marker_new = new google.maps.Marker({
    position: myLatLng,
    map: map
});

至:

var marker_new = new google.maps.Marker({
    position: myLatLng
});

您可以在文档中的示例中看到这一点: https://googlemaps.github.io/js-marker-clusterer/examples/simple_example.html

for (var i = 0; i < 100; i++) {
    var dataPhoto = data.photos[i];
    var latLng = new google.maps.LatLng(dataPhoto.latitude,
        dataPhoto.longitude);
    var marker = new google.maps.Marker({
        position: latLng
    });
    markers.push(marker);
}
var markerCluster = new MarkerClusterer(map, markers);