2013-04-02 52 views
2

我想學習谷歌API,我想使用標記集羣。我創建一個數據庫 from here並做任何谷歌說。我的代碼是標記clusterer不集羣時變焦

`

<script src="markerclusterer.js" type="text/javascript"></script> 
<script type="text/javascript"> 
//<![CDATA[ 
var customIcons = { 
    restaurant: { 
    icon: 'images/pin1.png', 
    shadow: 'http://labs.google.com/ridefinder/images/mm_20_shadow.png' 
    }, 
    bar: { 
    icon: 'images/pin2.png', 
    shadow: 'http://labs.google.com/ridefinder/images/mm_20_shadow.png' 
    } 
}; 

function initialize() { 
    var markers = null; 
    var mcmarkers = []; 
    var map = new google.maps.Map(document.getElementById("map"), { 
    center: new google.maps.LatLng(47.6145, -122.3418), 
    zoom: 12, 
    mapTypeId: 'satellite' 
    }); 

    var infoWindow = new google.maps.InfoWindow; 

    // Change this depending on the name of your PHP file 
    downloadUrl("phpsqlajax_genxml.php", function(data) { 
    var xml = data.responseXML; 
    markers = xml.documentElement.getElementsByTagName("marker"); 

    for (var i = 0; i < markers.length; i++) { 
     var name = markers[i].getAttribute("name"); 
     var address = markers[i].getAttribute("address"); 
     var type = markers[i].getAttribute("type"); 
     var lat = parseFloat(markers[i].getAttribute("lat")); 
     var lng = parseFloat(markers[i].getAttribute("lng")) 
     var point = new google.maps.LatLng(lat, lng); 
     var html = "<b>" + name + "</b> <br/>" + address; 
     var icon = customIcons[type] || {}; 
     var marker = new google.maps.Marker({ 
     map: map, 
     position: point, 
     icon: icon.icon, 
     shadow: icon.shadow 
     }); 
     mcmarkers.push(marker); 
     var mc = new MarkerClusterer(map, mcmarkers); 
     bindInfoWindow(marker, map, infoWindow, html); 

    } 
    }); 

} 

function bindInfoWindow(marker, map, infoWindow, html) { 
    google.maps.event.addListener(marker, 'click', function() { 
    infoWindow.setContent(html); 
    infoWindow.open(map, marker); 
    }); 
} 

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('POST', url, true); 
    request.send(null); 
} 

function doNothing() {} 

//]]> 
google.maps.event.addDomListener(window, 'load', initialize); 

`

它工作得很好,當我打開在t他第一次,但當我放大或縮小除了最大縮小外沒有任何羣集。我無法弄清楚。感謝您的幫助...

+0

我有完全相同的問題。但仍然不知道如何解決這個問題。 – clime

回答

0
var mc = new MarkerClusterer(map, mcmarkers); 

此行不能放在for循環中。但在外面之後。我做了完全一樣的錯誤:)。