Google Maps - Как найти маркер в массиве маркеров? - PullRequest
4 голосов
/ 01 июня 2011

Как я могу проверить, находится ли маркер карты Google внутри массива маркеров?
Даже после этого markersArray.push(marker); условие (marker in markersArray) ложно.

Ответы [ 4 ]

5 голосов
/ 05 июня 2011

Во-первых, (marker in markersArray) неверно, поскольку in не ищет элементы в массиве.
Ищет свойства.

То, как это сработало для меня, было

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

Это работает до тех пор, пока вам нужно сравнить только координаты маркеров.
Мы используем здесь класс LatLng '.оператор равенства.

2 голосов
/ 01 июня 2011

Вы должны перебрать массив для проверки маркера.

for (var i=0; i<markersArray.length; i++) {
  if (markersArray[i] === marker) {
     //doSomething...
     break;
     }
  }
0 голосов
/ 24 апреля 2012
var marker = new google.maps.Marker({
                            icon:icon,
                            position: position, 
                            map: map
                        });

Маркеры имеют собственный идентификатор. Вы можете получить этот идентификатор по

var marker_id = marker.__gm_id;

и получите маркер на карте

map.Hb.qa[marker_id];
0 голосов
/ 01 июня 2011
markersArray.indexOf(marker) > -1
...