Клуб API Карт

При добавлении метки, удалять предыдущую

Attic134
31 декабря 2010, 00:15

Здравствуйте!

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

YMaps.Events.observe(map,map.Events.Click, function (map, mEvent) {
        var placemark = new YMaps.Placemark(mEvent.getGeoPoint(), {draggable: true, style: "default#houseIcon"});
        placemark.name = "Место";
        placemark.description = "Описание";
        map.addOverlay(placemark);     
    });

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

Спасибо.

1 комментарий
Подписаться на комментарии к посту
На сколько я понял вы хотите, чтобы первый раз метка создавалась, а при последующих кликах - перемещалась.

Это делается примерно так:

var placemark;
YMaps.Events.observe(map, map.Events.Click, function (map, mEvent) {
    if (!placemark) {
        placemark = new YMaps.Placemark(mEvent.getGeoPoint(), {draggable: true, style: "default#houseIcon"});
        placemark.name = "Место";
        placemark.description = "Описание";
        map.addOverlay(placemark);
    } else {
        placemark.setGeoPoint(mEvent.getGeoPoint());
    }    
});