Javascript 谷歌地图MarkerClusterer只显示一个标记

Javascript 谷歌地图MarkerClusterer只显示一个标记,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我的标记是从xml解析器生成的。它的工作和显示如7标记,但当我添加MC,然后它只显示1个标记。 检查我的js。 也许问题就在这里标记。按下(标记) function initialize() { directionsDisplay = new google.maps.DirectionsRenderer(); var chicago = new google.maps.LatLng(52.6145, 21.3418); var mapOptions = {

我的标记是从xml解析器生成的。它的工作和显示如7标记,但当我添加MC,然后它只显示1个标记。 检查我的js。 也许问题就在这里<代码>标记。按下(标记)

    function initialize() {
    directionsDisplay = new google.maps.DirectionsRenderer();
    var chicago = new google.maps.LatLng(52.6145, 21.3418);
    var mapOptions = {
        zoom: 6,
        center: chicago
    };
    map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
    directionsDisplay.setMap(map);
    var infoWindow = new google.maps.InfoWindow;

    // Change this depending on the name of your PHP file
    downloadUrl("db/parse_xml.php", function(data) {
        var xml = data.responseXML;
        var 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 cover = markers[i].getAttribute("cover");
            var point = new google.maps.LatLng(
                parseFloat(markers[i].getAttribute("lat")),
                parseFloat(markers[i].getAttribute("lng")));
            var html = "<div id='infobox'><img src='" + cover + "'/><b>" + name + "</b><br>" + address + " <br/><input type='button' id='end' onClick=calcRoute() name='" + name + "," + address + "' value='Wyznacz trasę'></div>";
            var icon = customIcons[type] || {};
            var marker = new google.maps.Marker({
                map: map,
                position: point,
                icon: icon.icon,
                shadow: icon.shadow
            });

            bindInfoWindow(marker, map, infoWindow, html);

            document.getElementById('pasekBoczny').innerHTML += '<li class="list-sidebar" ><a href="javascript:myclick(' + i + ')"  >' + name + '</a></li>';
            markers.push(marker);
        }

        var markerCluster = new MarkerClusterer(map, markers);
    });

}
函数初始化(){
directionsDisplay=new google.maps.DirectionsRenderer();
var chicago=new google.maps.LatLng(52.6145,21.3418);
变量映射选项={
缩放:6,
中心:芝加哥
};
map=new google.maps.map(document.getElementById('map-canvas'),mapOptions);
方向显示.setMap(地图);
var infoWindow=new google.maps.infoWindow;
//根据PHP文件的名称更改此选项
下载URL(“db/parse_xml.php”,函数(数据){
var xml=data.responseXML;
var markers=xml.documentElement.getElementsByTagName(“标记”);
对于(var i=0;i“+地址+”
”; var icon=customIcons[type]| |{}; var marker=new google.maps.marker({ 地图:地图, 位置:点,, icon:icon.icon, 阴影:icon.shadow }); bindInfoWindow(标记、地图、infoWindow、html); document.getElementById('pasekBoczny').innerHTML+='
  • ; 标记器。推(标记器); } var markerCluster=新的MarkerClusterer(地图、标记); }); }
    markers是一个域节点列表,它没有方法
    push

    创建一个数组并用
    google.maps.Marker

    var markers = xml.documentElement.getElementsByTagName("marker"),
        markerArray=[];
    for (var i = 0; i < markers.length; i++) {
    
      /**
        * your code
        **/
      //markers.push(marker);<--error, remove it, currently the script will stop here
      markerArray.push(marker);//add this instead
    }
    var markerCluster = new MarkerClusterer(map, markerArray);
    
    var markers=xml.documentElement.getElementsByTagName(“标记”),
    Markerary=[];
    对于(var i=0;i