Клуб API Карт

Добавление метки одновременно в несколько коллекций

yusoft
31 июля 2012, 06:16

Добрый день

 

Мне нужно добавлять метку одновременно в несколько коллекций (компания, тип объекта, его расположение и т.п.).

Делаю это так:

 

  var groups = new Object;
  var fc = new Object;
...

      groups[map_options.map_delta] = new GeoCollectionBounds();

      $.each(map_options.placemarks, function(id, pm) {
        if (pm.company) fc[pm.company] = new GeoCollectionBounds();
        if (pm.area) fc[pm.area] = new GeoCollectionBounds();
        if (pm.type) fc[pm.type] = new GeoCollectionBounds();
      });

...

    fc[pm.company].add(placemark);
    fc[pm.area].add(placemark);
    fc[pm.type].add(placemark);

    groups[options.map_delta].add(placemark);

 

Пробовал с GeoObjectArray(), GeoObjectCollection(), GeoCollectionBounds() - результат один и тот же: при добавлении метки в каждую следующую коллекцию она почему-то удаляется из предыдущей и в результате метка добавляется только в groups.

 

Перепробовал различные варианты, в т.ч. и это решение - ничего не помогает. Что я делаю не так?

 

Заранее благодарен за ответ.

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

Создавайте копии меток.

В результате мне нужно получить что-то аналогичное вот этому. А как я потом смогу коллекции с карты убирать и добавлять, если это будут копии меток?

 

И 2-й вопрос: получается, что такое решение работает не всегда и одну и ту же метку нельзя добавить в несколько коллекций?

 

PS: метод для копирования метки я пока не нашел. Можете дать ссылку?

 

В результате мне нужно получить что-то аналогичное вот этому. А как я потом смогу коллекции с карты убирать и добавлять, если это будут копии меток?

У нас есть более продвинутая версия этого примера, может пригодится.

 

И 2-й вопрос: получается, что такое решение работает не всегда и одну и ту же метку нельзя добавить в несколько коллекций?

Вроде бы это решение вообще про хранение коллекций в хэше

 

PS: метод для копирования метки я пока не нашел. Можете дать ссылку?

Такого метода нет.

Создавайте просто новую метку по координатам оригинальной

 

более продвинутая версия этого примера
Благодарю за ссылку, но похоже в моем случае она не поможет. Ведь в ней загружаются УЖЕ разбитые на коллекции метки.Создавать несколько меток по одному адресу - имхо, тоже не решение, т.к. получится что при отключении коллекции одна метка удалится, а остальные по этому же адресу останутся.

 

Вроде бы это решение вообще про хранение коллекций в хэше
Вот мне что-то подобное и нужно: добавить метку в несколько коллеций так, чтобы они не конфликтовали одна с другой.Неужели в API 2.0 нет простого решения для добавления метки сразу в несколько коллекций и придется переделывать свой код под генерацию и загрузку YMapsML-файла?

если честно, я с трудом представляю зачем это нужно.

Для чего одной и той же метке содержаться в нескольких коллекциях.

Неужели в API 2.0 нет простого решения для добавления метки сразу в несколько коллекций и придется переделывать свой код под генерацию и загрузку YMapsML-файла?

В АПИ 2.0 геообъекты могут иметь только одного родителя и кажется что это правильно

с трудом представляю зачем это нужно

Филиалы фирмы "Рога и Копыта" находятся в Москве и Питере, а фирмы "Крылья и Хвосты" - в Москве и Липецке.

 

Создаем коллекции "Название" и "Регион" для того, чтобы можно было вывести на карту или удалить с нее:

1. все филиалы по каждой из фирм

2. филиалы всех фирм, находящихся например в Москве

 

Или для этого есть более простое решение?

Дублировать данные это в любом случае плохо.

Можно под офисы каждой фирмы отвести одну коллекцию.

Можете привести пример?

 

Я сделал так:

коллекция №1: Рога и Копыта, Крылья и хвосты

коллекция №2: Москва, Питер, Липецк

 

Потом создал метку "Рога и Копыта" в Москве и поместил ее в коллекцию №1 (по названию). Но при попытке добавить ее же в коллекцию №2 (по расположению) метка вылетает из коллекции №1. Разве это правильно?

да, правильно.

Группируйте ваши коллекции по фирмам, не по городам и проблем не будет

Не пойму вашу мысль.

 

А метки по городам (только в Москве, Питере и т.д.) как я выводить буду? А еще мне и по типу филиала нужно выводить. и кроме этого отдельная коллекция (все метки) у меня используется для центрирования карты по всем находящимся на ней меткам.

 

Сейчас нормально работает только центрирование (в эту коллекцию добавляется в самом конце), но метки автоматически вылетают из всех остальных коллекций (по названию, расположению и типу).

 

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

а зачем вообще тут коллекции использовать?

сделайте обычный массив с маркерами, и несколько массивов с "коллекциями". тогда в первом массиве будут храниться объекты, а в остальных - ссылки на эти объекты.

потом при показе просто подменять geoObjects..не?

Спасибо за идею, в результате остановился на примерно таком решении! :)