Клуб API Карт

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

zh00pel
17 января 2013, 06:01

Есть задача программно обратиться к 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) ?

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

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

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

Добавление элемента в новую коллекцию автоматически удаляет его из предыдущей коллекции. Достаточно вызвать collection2.add(element)

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

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