Клуб API Карт

Как получить координаты метки при перетаскивании ее мышкой

Goldolif
8 августа 2012, 14:55

Используя пример http://api.yandex.ru/maps/doc/jsapi/2.x/examples/markersdraggable.html нужно получить новые координаты точки при отпускании кнопки мыши.

 

Делал так

             myMap.events.add(\'draggable\', function (e) {
               var coords = e.get(\'coordPosition\');
                   document.getElementById(\'geox\').value = coords[1].toPrecision(6);
                document.getElementById(\'geoy\').value = coords[0].toPrecision(6);
            });

 

не работает, где я ошибся? если можно то рабочий пример

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

драг в пиксельных координатах работает

поэтому надо брать так

var coords = e.get('target').geometry.getCoordinates();

вот так не работает

 

        ymaps.ready(init);

        function init () {
            var myMap = new ymaps.Map("map", {
                    center: [55.7311, 37.7125],
                    zoom: 10
                }),

                myPlacemark = new ymaps.Placemark([55.7311, 37.7125], {
                    hintContent: \'Èçìåíèòü ìåñòî æèòåëüñòâà!\'
                }, {
                    draggable: true // Ìåòêó ìîæíî ïåðåòàñêèâàòü, çàæàâ ëåâóþ êíîïêó ìûøè.
                });


             myMap.events.add(\'drag\', function (e) {
               var coords = e.get(\'target\').geometry.getCoordinates();
                   document.getElementById(\'geox\').value = coords[1].toPrecision(6);
                document.getElementById(\'geoy\').value = coords[0].toPrecision(6);
            });

                myMap.geoObjects.add(myPlacemark);

        }

вешать обрабочик надо на метку, а не на карту

спасибо

Вдруг кому пригодится надо изменить на

             myPlacemark.events.add(\'dragend\', function (e) {
               var coords = e.get(\'target\').geometry.getCoordinates();
                   document.getElementById(\'geox\').value = coords[1].toPrecision(6);
                document.getElementById(\'geoy\').value = coords[0].toPrecision(6);
            });

1) событие называется 'dragend'
2) ставить опцию нужно самой метке и подписываться тоже на саму метку
3) из мышиного события вы получите координаты курсора мыши, а не метки. Координаты метки - placemark.geometry.getCoordinates()