谷歌地图 - 如何在标记数组中找到标记?

时间:2011-06-01 06:42:43

标签: javascript google-maps google-maps-api-3 google-maps-markers

如何检查谷歌地图标记是否已经在标记数组中? 即使在此markersArray.push(marker);之后,条件(marker in markersArray)也是错误的。

4 个答案:

答案 0 :(得分:5)

首先,(marker in markersArray)是错误的,因为in没有查找数组中的元素 它寻找属性。

它对我有用的方式是

for (var i=0; i<markersArray.length; i++) {
    if (markersArray[i].getPosition().equals(marker.getPosition())) {
...

只要您需要比较的只是标记的坐标,这就有效 我们在这里使用LatLng类'.equals运算符。

答案 1 :(得分:2)

您应该遍历数组以检查标记。

for (var i=0; i<markersArray.length; i++) {
  if (markersArray[i] === marker) {
     //doSomething...
     break;
     }
  }

答案 2 :(得分:0)

var marker = new google.maps.Marker({
                            icon:icon,
                            position: position, 
                            map: map
                        });

标记有自己的ID。您可以通过

获取此ID
var marker_id = marker.__gm_id;

然后在地图上获得标记

map.Hb.qa[marker_id];

答案 3 :(得分:-1)

markersArray.indexOf(marker) > -1