Возникли проблемы при добавлении маркеров в кластер Google Maps. - PullRequest
0 голосов
/ 08 февраля 2012

У меня проблема с добавлением маркеров в Clusterer маркера Google Maps. Firebug возвращает ошибку:

Ошибка: недопустимое значение для свойства: [объект объекта] 'при вызове метод: [nsIDOMEventListener :: handleEvent]

Маркеры создаются из смеси JavaScript и PHP:

// loop starts here.......

    var randLatLng = new google.maps.LatLng( <?php echo $lat; ?>, <?php echo $lon; ?> );
    var marker_<?php echo $gauging["Gauging"]["id"]; ?> = new google.maps.Marker({
        map: MyMap.map,
            title: '<?php echo $gauging["Gauging"]["identification"]; ?>',
            position: randLatLng,
            draggable: false, 
            clickable: true, 
            icon: '/img/markers/yellow_Marker.png',
            myId: 'gp_<?php echo $gauging["Gauging"]["id"]; ?>'
        });
    myMap.markers.push(marker_<?php echo $gauging["Gauging"]["id"]; ?>);

// loop ends here .......

var markerYellowCluster = new MarkerClusterer(myMap, yellowMarkers);

... и этот код прекрасно создает все маркеры, но не добавляет их в кластер.

Можете ли вы дать мне несколько советов, как я могу это исправить?

Tnx в adv!

ОБНОВЛЕНИЕ: возможно, это может помочь - alert (yellowMarkers); показывает окно предупреждения, с:

[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Ответы [ 2 ]

1 голос
/ 09 февраля 2012

Когда я делал это раньше, мой код выглядел так:

var markerCluster = new MarkerClusterer(map, markers, {
            zoomOnClick: true,
            averageCenter: true
        });

Что такое yellowMarkers?Разве это не должны быть myMap.markers?

0 голосов
/ 10 февраля 2012

Я согласен с некоторыми из приведенных выше комментариев о том, как называются ваши переменные, но я хотел бы добавить еще один вариант здесь.

Вы можете инициализировать markerclusterer перед тем, как начинать добавлять любые маркеры:

var markerYellowCluster = new MarkerClusterer(myMap);

Тогда вместо вызова:

myMap.markers.push(marker_<?php echo $gauging["Gauging"]["id"]; ?>);

Вы можете просто вызвать метод "addMarker" для самого объекта markerclusterer, и он будет добавлять как маркер на карту, так и кластерный маркер:

markerYellowCluster.addMarker(marker_<?php echo $gauging["Gauging"]["id"]; ?>);
...