Клуб API Карт

Наложение своего слоя -- дублирование

mapsapi
24 июля 2009, 16:30

Есть ли реальные примеры наложения своего слоя поверх карты, кроме этого -- http://www.ok2009.ru/info/place/?

Как это правильно сделать?

Я что-то никак не могу понять, как все-таки добавить свой слой. В указанном примере слои добавляются через конструкцию:

var ls = mapType.getLayers();
mapType.getLayers = function () {
ls.push(new YMaps.MapLayer(myData));
return ls;
  }

Был бы рад пояснениям, как это работает.


Причем, работает довольно странно -- число слоев при каждом переключении вида карты увеличивается. То есть при загрузке -- один слой поверх карты, если переключиться на спутник, потом обратно на схему -- будет 4 слоя сверху, еще раз -- будет 7 слоев.

 

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

Очевидно это ошибка. Спасибо за то что её нашли! Обязательно поправим для сайта следующей конференции.
Что касается вопроса как делать это правильно, то надеюсь мой коллега сейчас вам расскажет )

Чтобы исключить дублирование слоев нужно вынести добавления слоя из метода getLayers():
// Получаем список слоев типа карты
var ls = mapType.getLayers();

// Добавляем свой слой
ls.push(new YMaps.MapLayer(myData));

// Переопределяем метод getLayers(), чтобы кроме стандартных слоев возвращался еще пользовательский
mapType.getLayers = function () {
    return ls;
}

Вопрос добаления своего слоя на карту мы обсуждали в этом посте:
http://clubs.ya.ru/mapsapi/replies.xml?item_no=4082

Спасибо за код с комментариями, а то я сам не с той стороны начал бороться.

Обсуждение по ссылке читал.


В итоге, все получилось. Последняя проблема была с наложением слоёв.

Покажете результат?

Да.

Сделали  карту покрытия Yota на Яндекс.Картах.

http://www.yota.ru/ru/coverage/