Клуб API Карт

Как обратиться к определенному объекту коллекции?

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

Есть задача программно обратиться к 2-му объекту коллекции. А именно переместить его из одной коллекции в другую.

Как обратиться к этому объекту? Есть ли возможность обратиться по имени к объекту в коллекции? Есть ли способ переноса из коллекции в коллекцию?

Прошу прощения, за нубовские вопросы. Просто только вторую ночь осваиваю api.

var myCollection = new ymaps.GeoObjectCollection(null, {
preset : 'twirl#whiteStretchyIcon'
});
var myCollection2 = new ymaps.GeoObjectCollection(null, {
preset : 'twirl#greenStretchyIcon'
});
var dt = new Array();
for ( var i = 1; i <= 10; i++) {
var x = 55.5 + Math.random() * (.300 - .100) + .100;
var y = 37.4 + Math.random() * (.300 - .100) + .100;
var data = {
balloonContent : 'Координаты ' + x + ', ' + y,
iconContent : '' + i
};
dt[i] = new ymaps.Placemark([ x, y ], data);
myCollection.add(dt[i]);
}

Т.е. я хочу точку dt[2] перенести из myCollection в myCollection2. Как это сделать?

Я так понимаю либо есть какой-то метод move(что, источник, назначение).

Либо делается как-то так: var tmp = myCollection.dt[2]; myCollection.remove(dt[2]); myCollection.add(tmp); ???

 

 

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

 у объекта есть метод .setParent()

может быть сработает dt[i].setParent(myCollection2) ?

Андрей Грэй
28 января 2016, 02:51

Юль, это я уже пробовал, не сработало к сожалению

Почитайте в документации про методы коллекций.

Андрей Грэй
28 января 2016, 02:51

Дык, я и пытаюсь. Но очень скудно написано: http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/GeoObjectCollection.xml :-(

Sergey Konstantinov
28 января 2016, 02:51
Добавление элемента в новую коллекцию автоматически удаляет его из предыдущей коллекции. Достаточно вызвать collection2.add(element)
Андрей Грэй
28 января 2016, 02:51

Спасибо. Об этой особенности где-то указано или опытным путем выяснили?

Андрей Грэй
28 января 2016, 02:51

Спасибо. Исчерпывающе. Не отложилось впамяти при первом чтении.