Клуб API Карт

Как удалить маркер при открытии нового маркера?

khabsite
10 ноября 2009, 02:55

Есть код:

 

<script>

function setCoord(x, y, z, i){
  map.setCenter(new YMaps.GeoPoint(x, y), z);
  var point = new YMaps.GeoPoint(x, y);
  var placemark = new YMaps.Placemark(point, {style: s});
  placemark.setBalloonContent(i);
  map.addOverlay(placemark);
  }
 </script>

<body>

<a href="javascript:setCoord(0, 0, 2, 'Площадь победы')"> - 1 - </a><br>
<a href="javascript:setCoord(-20, 0, 2, 'Площадь славы')"> - 2 - </a>

</body>

 Не могу сообразить, как применить map.removeOverlay(placemark), чтобы когда открыт маркер, либо балун №1 происходило его удаление при открытии маркера №2. Может кто-нибудь сталкивался или может сообразить. Подскажите, пожалуйста.

 

3 комментария
Подписаться на комментарии к посту
Дешёвое решение: map.removeAllOverlays()

Азат, опять спасибо!!!

При правильном использовании такой метод очень даже подходит.

тоже дешево, но без возможных побочных последствий

var placemark;
function setCoord(x, y, z, i){
    if (placemark) {
       map.removeOverlay(placemark);
    }
    map.setCenter(new YMaps.GeoPoint(x, y), z);
    var point = new YMaps.GeoPoint(x, y);
    placemark = new YMaps.Placemark(point, {style: s});
    placemark.setBalloonContent(i);
    map.addOverlay(placemark);
}