Очистить маркеры карты - PullRequest
       1

Очистить маркеры карты

1 голос
/ 17 ноября 2011

Я использую эту страницу, чтобы пользователи могли искать достопримечательности в пределах заданного радиуса адреса, который они вводят.

Проблема в том, что я не могу очистить карту маркеров между успешным и неудачным поиском.

Например, если я наберу слово Суиндон в радиусе 25 миль, на боковой панели отображаются 2 POI, а соответствующие маркеры - на карте.

Если я затем снова использую графство Антрим в качестве моего поискового адреса на расстоянии 25 миль, на боковой панели будет правильно отображаться «Результаты не найдены», но маркеры первоначального поиска все еще на карте.

Я пробирался по Интернету, чтобы попробовать разные куски кода, чтобы заставить это работать, но я действительно застрял с этой проблемой. Я вернулся к исходному коду на сайте Google и уверен, что использую тот же код.

Может кто-нибудь показать мне, пожалуйста, где я ошибаюсь?

Ответы [ 2 ]

3 голосов
/ 17 ноября 2011

Я использую это:

for(var x=0;x<markers.length;x++) {
     markers[x].setMap(null);
}
0 голосов
/ 17 ноября 2011

У вас есть определенный массив маркеров, но в вашей функции searchLocationsNear() вы никогда не добавите маркеры в массив.Таким образом, массив становится пустым, когда вы пытаетесь просмотреть его в функции clearLocations().

Попробуйте это:

 //...
 for (var i = 0; i < markerNodes.length; i++) {
     var sitedescription = markerNodes[i].getAttribute("sitedescription");
     var distance = parseFloat(markerNodes[i].getAttribute("distance"));
     var latlng = new google.maps.LatLng(
          parseFloat(markerNodes[i].getAttribute("siteosgb36lat")),
          parseFloat(markerNodes[i].getAttribute("siteosgb36lon")));

     var marker = createMarker(latlng, sitedescription);

     markers.push(marker); //add marker to the markers array.

     bounds.extend(latlng);

     var sidebarEntry = createSidebarEntry(marker, sitedescription, distance);
     sidebar.appendChild(sidebarEntry);
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...