Удаление всех показанных отметок Google API - PullRequest
0 голосов
/ 11 сентября 2018

Я работаю в проекте Laravel, и у меня есть модуль для отображения и удаления всех магазинов на карте Google, если я выберу только 1 магазин.

Это дублирующий вопрос, однако, почему моя функция не работает, устанавливая функцию showallmarks как ноль.

Вопрос: Как убрать все отметки, отображаемые на картах Google после нажатия кнопки?

У меня есть здесь коды.

Показать все оценки:

showallmarks();

function showallmarks() {
  $.each(locations, function(index, value) {

    var position = new google.maps.LatLng(value.store_lat, value.store_long);
    var title = value.branch_name;
    var address = value.store_address;

    var contentString = "<h5>" + title + "</h5>" + address;

    var infowindow = new google.maps.InfoWindow({
      content: contentString
    });

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

    marker.addListener('click', function() {
      infowindow.open(map, marker);
    });
  });
}

После нажатия этой кнопки showallmarks не должен отображаться на карте Google.

var markeronce;

$('button#addresses').click(function() {

  //removing all marks 
  showallmarks(null);

  var infowindow = new google.maps.InfoWindow({
    content: "<span>Visit us on our store.</span>"
  });
  var address_href = $(this).val();
  var commaPos = address_href.indexOf(',');
  var coordinatesLat = parseFloat(address_href.substring(0, commaPos));
  var coordinatesLong = parseFloat(address_href.substring(commaPos + 1, address_href.length));

  var centerPoint = new google.maps.LatLng(coordinatesLat, coordinatesLong);


  if (!markeronce) {
    markeronce = new google.maps.Marker({
      position: centerPoint,
      map: map,
      zoom: 8
    });
  } else {
    markeronce.setPosition(centerPoint);
  }
  map.setCenter(centerPoint);
})

Sample Image

1 Ответ

0 голосов
/ 11 сентября 2018

Добавить кнопку как

  <input type="button" value="Delete" onclick="DeleteMarkers()" />

И попробуйте эту функцию

    <script type="text/javascript">
    var markers = [];

    function DeleteMarkers() {
            //Loop through all the markers and remove
            for (var i = 0; i < markers.length; i++) {
                markers[i].setMap(null);
            }
            markers = [];
        };
    </script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...