Клуб API Карт

Как переместить точку после изменения центра карты

Пост в архиве.

Есть карта с точкой, центр карты может поменяться по действию извне - выбор города в селекте

Карта передвигается нормально, а точку не могу найти и подвинуть...

 

Добавляю  draggable-точку:

 

var geoData = [x, y]

var myPlacemark = new ymaps.Placemark(geoData, {

                                        iconContent: _name,

                                        hintContent: 'Подвинь меня!'

                              }, {

                                draggable: true

                            });

myMap.geoObjects.add(myPlacemark);

 

 

Я перемещаю карту по измерению селекта

myMap.panTo([x, y], { flying: true, duration: 1000 });

пытался получить набор точек - пусто

 

myMap.geoObjects.length 

//undefined

 

 

3 комментария

Если, как я понял, нужно ставить точку в центр карты, каждый раз, как карта меняет город (из инпута, например), то как-то так можно сделать:


В коде после задания нового центра карты, меняйте координаты точки.
myPlacemark.geometry.setCoordinates(myMap.getCenter());


map.geoObjects.length == undefined потому что geoObjects — это не массив и у него нет метода length (http://api.yandex.ru/maps/doc/jsapi/2.x-stable/ref/reference/map.GeoObjects.xml)

myMap.geoObjects - это геоколлекция

св-ва length у нее нет, зато есть метод getLength

 

Чтобы переместить метку - это всё не обязательно,

можно и по ссылке с ней работать.

myPlacemark.geometry.setCoordinates([new_x, new_y]);

спасибо всем!

да, разобрался