簡體   English   中英

Google Maps MarkerClusterer僅顯示一個標記

[英]Google Maps MarkerClusterer show only one marker

我的標記是從xml解析器生成的。 它可以正常工作並顯示7個標記,但是當我添加MC時,它僅顯示1個標記。 檢查我的js。 也許問題出在這里? markers.push(marker);

    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);
    });

}

markers是一個DOMNodeList,它沒有方法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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM