Клуб API Карт

Копирование матки из одной коллекции в другую

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

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

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

  

var this_placemark = полчаем объект точки;

 

var coords = this_placemark, myCollection = new ymaps.GeoObjectCollection();


myCollection.add(new ymaps.Placemark(coords));

myMap.geoObjects.add(myCollection);

 

 

16 комментариев

Почему бы вам по клику не добавлять эту же метку, но в ещё одну коллекцию? Ведь нигде не сказано, что точка может принадлежать только одной коллекции

Ну я об этом и говорю. Просто как при клике получить данные точки, чтобы доавбить ее в новую коллекцию? Нужны координаты, булин точки, и т.д.

При помощи click_point.geometry.getCoordinates() я могу получить координаты точки, а как получить балун, дизайн точки и т.д.?

 

Владислав Турман
28 января 2016, 02:06

var object = e.get('target')

Это не тот объект. Я делаю новую точку так:


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

soloCollection.add(new ymaps.Placemark(point));

myMap.geoObjects.add(soloCollection);


Т.е. при клике получаю координаты точки. А как получить все остлаьное, дизайн, балун и т.д.?

var object = e.get('target') - если так, то как можноего передать в  new ymaps.Placemark()? Просто если делать new ymaps.Placemark(object) ничего не происходит.

 

Владислав Турман
28 января 2016, 02:06

object уже ваша точка. не получится создать точку из точки.

Если хотите создать новую точку из старой, скопируйте в конcтруктор плеймарка нужные вам данные из старой:

 

object.properties.get('...')

object.options.get('...')

.add('click', function (e) {            myNEWcollection.add(new ymaps.Placemark(                myMap.getCenter(),        e.get('target').properties.getAll(),                 e.get('target').options.getAll()            )        );});

спсибо, попробую.

разьве у менеджера опций есть метод getAll?

Спсибо очень помогло, все отлично работает как я и хотел!!!

А можно теперь после создания точки, открытье ее балун, программно, не кликая

Зачем Вам копировать метку в другую коллекцию?

Чтобы при сдивге карты, все метки исчезали, а эта оставалась на месте.

Лучше не скопировать, а перенести.
у метки есть метод setParent(newCollection)

setParent() я так понял меняет карту, а не коллекцию. При такоей зписи, у меня точка просто попадает при клике.