Клуб API Карт

Подвижные метки. Как узнать координаты, уже послее ее переноса.

totto72
28 декабря 2011, 19:43

Долек от WEB программирования (увы), но необходимость такая приключилась.

Сильно не ругайтесь.

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

Читал здесь:

http://api.yandex.ru/maps/jsapi/doc/dg/tasks/how-to-add-placemark.xml

и изучал вот это:
http://api.yandex.ru/maps/tools/getlonglat/

На фару пробовал сделать так (в кратце):

 

YMaps.Events.observe(button, button.Events.Click, function () {
   
    var placemark = new YMaps.Placemark(map.getCenter(), {draggable: true}
   
    this.addOverlay(placemark);
   
    placemark.name = "Test icon";
    placemark.description = "<a href=#>Test description</a><br/>"+placemark.getGeoPoint().copy(;
   
    placemark.setIconContent("Move me!");
    }, map);

 

Но в этом случае в description лежат статические координаты, которые получила метка при появлении на карте.

 

Плиз, хелп. Куда копать. Спасибо.



 

4 комментария
Подписаться на комментарии к посту

копать в сторону обработчика события DragEnd у метки

в нем вы получите новые координаты после перетаскивания

см пример

Спасибо. Только-что решил это.

Решение:

var placemark = new YMaps.Placemark(map.getCenter(), {draggable: true});
   
YMaps.Events.observe(placemark, placemark.Events.DragStart, function (obj) {       
    var current = obj.getGeoPoint().copy();
    placemark.description = "Test description
"+current;
});

YMaps.Events.observe(placemark, placemark.Events.Drag, function (obj) {       
    var current = obj.getGeoPoint().copy();
    placemark.description = "Test description
"+current;
});
   
YMaps.Events.observe(placemark, placemark.Events.DragEnd, function (obj) {
    var current = obj.getGeoPoint().copy();
    placemark.description = "Test description
"+current;
   
    obj.update();
});   

YMaps.Events.observe(button, button.Events.Click, function () {
       
    this.addOverlay(placemark);       
   
    placemark.description = "Test description
"+placemark.getGeoPoint().copy();
   
    placemark.name = "Test icon";   
    placemark.setIconContent("Ой, я тащусь!");   
    toolbar.removeAll(); // удаляет весь toolbar =(
    // toolbar.remove(button); // не работает, или работает не правильно
   
    }, map);

.copy() везде можно убрать

достаточно

 obj.getGeoPoint();

спасибо!