如何检查谷歌地图标记是否已经在标记数组中?
即使在此markersArray.push(marker);
之后,条件(marker in markersArray)
也是错误的。
答案 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。您可以通过
获取此IDvar marker_id = marker.__gm_id;
然后在地图上获得标记
map.Hb.qa[marker_id];
答案 3 :(得分:-1)
markersArray.indexOf(marker) > -1