我在将标记添加到Google地图的标记Clusterer时遇到问题。 Firebug返回错误:
错误:调用时属性的值无效:[object Object]' 方法:[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);
...此代码可以很好地创建所有标记,但不会将它们添加到clusterer中。
你能给我一些建议我如何解决这个问题吗?
Tnx in adv!
更新:也许这可以提供帮助 - 警报(yellowMarkers);显示警告窗口,显示:
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
答案 0 :(得分:1)
之前我完成此操作时,我的代码看起来像这样:
var markerCluster = new MarkerClusterer(map, markers, {
zoomOnClick: true,
averageCenter: true
});
什么是yellowMarkers
?那不应该是myMap.markers吗?
答案 1 :(得分:0)
我同意上面关于你的变量命名的一些评论,但我想在这里添加另一个选项。
您可以在开始添加任何标记之前初始化markerclusterer:
var markerYellowCluster = new MarkerClusterer(myMap);
然后而不是打电话:
myMap.markers.push(marker_<?php echo $gauging["Gauging"]["id"]; ?>);
您只需在markerclusterer对象上调用“addMarker”方法,它就会将标记添加到地图以及标记聚类器中:
markerYellowCluster.addMarker(marker_<?php echo $gauging["Gauging"]["id"]; ?>);