Javascript 谷歌地图清除新搜索中的标记聚类

Javascript 谷歌地图清除新搜索中的标记聚类,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,在新的搜索中,我很难让我的地图清除群集。有什么想法吗 function clearLocations() { //infoWindow.close(); for (var i = 0; i < markers.length; i++) { markers[i].setMap(null); } markers.length = 0; // clear #side_bar bottom text document.getElem

在新的搜索中,我很难让我的地图清除群集。有什么想法吗

function clearLocations() {
    //infoWindow.close();
    for (var i = 0; i < markers.length; i++) {
        markers[i].setMap(null);
    }
    markers.length = 0;

    // clear #side_bar bottom text
    document.getElementById("side_bar").innerHTML = "";
    // clear .alertBox text
    $('.alertBox').html('');
}


function searchLocationsNear(center) {
    clearLocations();

    var searchUrl = 'phpsqlsearch_genxml.php?lat=' + center.lat() + '&lng=' + center.lng();
    downloadUrl(searchUrl, function (data) {
        var xml = parseXml(data);
        var markerNodes = xml.documentElement.getElementsByTagName("marker");
        if (markerNodes.length > 0) {

            var bounds = new google.maps.LatLngBounds();
            for (var i = 0; i < markerNodes.length; i++) {
                var name = markerNodes[i].getAttribute("name");
                var address = markerNodes[i].getAttribute("address");
                var distance = parseFloat(markerNodes[i].getAttribute("distance"));
                var category = markerNodes[i].getAttribute("category");
                var latlng = new google.maps.LatLng(
                    parseFloat(markerNodes[i].getAttribute("lat")),
                    parseFloat(markerNodes[i].getAttribute("lng")));

                // createOption(name, distance, i);
                createMarker(latlng, name, address, category);
                bounds.extend(latlng);
            }
            map.fitBounds(bounds);
            var markerclusterer = new MarkerClusterer(map, markers);
          // markerclusterer.setMap(null);
            makeSidebar(); 

        } else {
            $('.alertBox').html('Sorry, there are no jobs that are close to your location.');
        }
   });
}
函数clearLocations(){
//infoWindow.close();
对于(var i=0;i
您应该尝试以下方法:

if (markers) {
    for (i in markers) {
        markers[i].setMap(null);
    }
    markers = [];
    markerclusterer.clearMarkers()
}
根据需要,可以使用
clearMarkers()
方法清除聚类器

更新

仅当我们已经创建MarkerClusterer时才调用clear

if(markerclusterer)
{
    clearLocations();
}

谢谢但是,我收到“UncaughtTypeError:无法调用未定义的方法'clearMarkers',因为您在第一次创建markerclusterer之前调用了
clearLocations
。你应该在我的更新之后或喜欢我的更新之后这样做:)我回答了你的问题?
markerclusterer
仅在
searchLocationsNear
中可见,而不是在
clearLocations
中可见。是的,我知道,如果
在这里,你需要将
放在这里。