Клуб API Карт

Задание видимости слоев при разных зумах

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

Делаю пользовательский слой поверх Я.карты, но в нужном мне месте yandex#map существует не для всех уровней зума. yandex#publicMap существует для всех, но она там менее подробная.

Вопрос - как сделать так, чтобы под пользовательским слоем показывалась yandex#map до того уровня зума, для которого она там существует, а при бОльших зумах показывалась бы yandex#publicMap? Похоже на то, как сделано на самих Я.Картах.

Напихал все 3 слоя подряд в ymaps.mapType.storage.add, как было сказано тут http://clubs.ya.ru/mapsapi/replies.xml?parent_id=27413&item_no=27409&with_parent=1#reply-mapsapi-27413 . И даже вижу как на большом зуме успевает отрисовываться yandex#publicMap, но ее сразу перекрывают серые тайлы с сообщением об отсутствии там yandex#map.

3 комментария

 посмотрите эту статью 

Нетривиально...

Спасибо, изучаю.

Не сдюжил садаптировать для своего случая. Прошу помощи.

 

У меня 2 пользовательских слоя. Каждый – поверх Я.карты:

 ymaps.mapType.storage.add('my#tech', new ymaps.MapType('Tech', ['yandex#publicMap','my#tech']));

ymaps.mapType.storage.add('my#heights', new ymaps.MapType('Heights', ['yandex#publicMap','my#heights']));

 

Переключаются кнопочками:

mya1.events.add('select', function () {mymap.setType('my#tech');});

mya2.events.add('select', function () {mymap.setType('my#heights');});

 

Видимо нужно завести 4 варианта – по 2 для каждого пользовательского слоя – с yandex#publicMap и с yandex#map? И перед подменой Я.карты умудряться чекать какой из пользовательских слоев отображается, чтобы выбирать чем подменять?

В теории вроде так, но непонятно как это сделать. :(