2012-07-10 2 views
0

로드 기능Google지도 v3 markercluster ..에서 닫기 버튼을 누르면 infowindow가 닫히지 않습니다. 클러스터 마커를 클릭하면

function load() { 

       var cluster = []; 
       infoWindow = new google.maps.InfoWindow();   

       var map = new google.maps.Map(document.getElementById("map"), { 
         center: new google.maps.LatLng(10.6145, -24.3418), 
         zoom: 2, 
         mapTypeId: 'roadmap' 
         }); 


       // Read the data from example.xml 
       downloadUrl("phpsqlajax_genxml.php", function(data) { 
       var xml = data.responseXML; 
       var markers = xml.documentElement.getElementsByTagName("marker"); 

       for (var i = 0; i < markers.length; i++) { 
        // obtain the attribues of each marker 
        var name = markers[i].getAttribute("name"); 
        var address = markers[i].getAttribute("address"); 
        var link = markers[i].getAttribute("link"); 
        var type = markers[i].getAttribute("type"); 
        var point = new google.maps.LatLng(
         parseFloat(markers[i].getAttribute("lat")), 
         parseFloat(markers[i].getAttribute("lng"))); 

        var html = "<b>" + '<a href="' + link + '" >' + markers[i].getAttribute("name") + '</a>' + "</b> <br/>" + "</b> <br/>" + '<a href="' + link + '" >' + markers[i].getAttribute("address") + '</a>'; 

        var icon = customIcons[type] || {}; 

        // create the marker 
        var marker = new google.maps.Marker({ 
        map: map, 
        position: point, 
        icon: icon.icon, 
        shadow: icon.shadow 
        }); 


       addMarker(marker, html); 



       cluster.push(marker); 

       } 
       var mc = new MarkerClusterer(map,cluster); 

       //markerCluster = new MarkerClusterer(map, gmarkers); 
       }); 
    } 

추가 마커

function addMarker(marker, content) 
    { 


     google.maps.event.addListener(marker, 'click', function() { 

     infoWindow.setContent(content); 
     infoWindow.open(map, marker); 
     infoWindow.close(); 


    }); 

    } 

코드 Ajax 용은

function downloadUrl(url, callback) { 
    var request = window.ActiveXObject ? 
     new ActiveXObject('Microsoft.XMLHTTP') : 
     new XMLHttpRequest; 

    request.onreadystatechange = function() { 
    if (request.readyState == 4) { 
     request.onreadystatechange = doNothing; 
     callback(request, request.status); 
    } 
    }; 

    request.open('GET', url, true); 
    request.send(null); 
} 
+0

"로드 기능 기능 하중() {"

은 다음 닫기 정보창을 이벤트 리스너를 추가합니다. 그것은 당신이 가지고있는 흥미로운 기능입니다. – jeff

+0

그래도 코드를 올바르게 형식화하도록 질문을 편집하십시오. 그것은 그대로 읽기가 어렵습니다. – jeff

+0

함수 이름은로드입니다 .. –

답변

1

하는 "clusterclick"이벤트가 시작됩니다 .

var mc = new MarkerClusterer(map, cluster); 

google.maps.event.addListener(mc, 'clusterclick', function() { 
    infoWindow.close(); 
}); 
관련 문제