Не удается удалить маркеры в Google Maps JS API

Я хочу удалить все маркеры на карте при нажатии на карту.

Я следую документации здесь: https://developers.google.com/maps/documentation/javascript/examples/marker-remove

Я включил функцию:

function clearMarkers() {
  setMapOnAll(null);
}

быть вызвано событием клика, но я просто получаю сообщение об ошибке:

Uncaught ReferenceError: setMapOnAll не определен

В документации нет другой информации, которая могла бы мне помочь.

Может кто-то указать мне верное направление?


person MeltingDog    schedule 10.11.2015    source источник


Ответы (2)


Ошибка указывает на то, что setMapOnAll не существует в области видимости.

// Sets the map on all markers in the array.
function setMapOnAll(map) {
  for (var i = 0; i < markers.length; i++) {
    markers[i].setMap(map);
  }
}
person sjm    schedule 10.11.2015
comment
Да, как в примере, или вы можете просто назвать их по отдельности, т.е. marker1.setMap(null) - person sjm; 10.11.2015

Отвечая на ваш последний вопрос, вам действительно не нужно добавлять маркеры в массив, но имейте в виду, что в примере документации они добавляют слово var перед добавлением его в массив,

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

если вы хотите работать только с одним маркером, не добавляйте слово var

marker = new google.maps.Marker({...

Затем используйте marker.setMap(null);, чтобы убрать его с карты.

person alfmonc    schedule 13.07.2016