0

我在将标记添加到Google地图标记Clusterer时遇到问题。萤火虫返回错误:将标记添加到Google Maps clusterer时遇到问题

Error: Invalid value for property : [object Object]' when calling method: [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 in adv!

更新:也许这可以帮助 - 警报(yellowMarkers);显示警报窗口,以:

[object Object],[object Object],[object Object],[object Object],[object Object],[object Object] 
+0

可以哟你发布php创建的输出?你不必发布标记的整个列表只有一个 – clem 2012-02-08 18:04:21

+0

与PHP我只添加标记属性,并且它工作正常。问题是我无法将创建的标记组合到标记聚类器中。你认为哪一部分的PHP代码可以帮助你? – user198003 2012-02-08 18:09:01

回答

1

当我这样做过,我的代码是这样的:

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

什么是yellowMarkers?不应该是myMap.markers?

+0

变量yellowMarkers在我的情况是你的变量标记。就像我的变量myMap和你的地图一样。在我身边肯定会有一些小错误...你能检查我的问题的更新部分吗? – user198003 2012-02-09 20:17:37

+1

如果你粘贴的代码是你正在使用的代码,那么邓肯的说法正确的是,yellowMarkers看起来并不像要使用的正确集合。你显然已经在代码中的某个地方填充了它,但是你发布的代码并不显示在哪里。它显示你填充myMap.markers。所以试试var markerYellowCluster = new MarkerClusterer(myMap,myMap.markers); – DaveS 2012-02-09 21:17:43

+1

另外,在某个时候您引用MyMap.map,然后引用myMap.markers。 JavaScript区分大小写。你只需将我的地图传递给标记聚类器。你的意思是传递myMap.map吗? – DaveS 2012-02-09 21:22:01

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"]; ?>); 
相关问题