在将标记添加到Google Maps群集器时遇到问题

时间:2012-02-08 18:01:04

标签: php javascript google-maps google-maps-api-3 markerclusterer

我在将标记添加到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]

2 个答案:

答案 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"]; ?>);