Клуб API Карт

Что значит YMaps.TileDataSource параметр isTransparent ?

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

Вопрос в названии темы.

Я думал что в случае isTransparent==false должны не грузиться тайлы под ним, но они грузятся.

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

6 комментариев
Sergey Konstantinov
28 января 2016, 06:15

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

Если у вас одновременно видны несколько непрозрачных слоёв, то вам нужно самостоятельно с этим разбираться.

занятная подробность, спасибо twirl.

Например я могу заменить getTileUrl() так чтобы она возвращала 404.

А как так сделать чтобы вообще не посылался запрос для выбранного слоя?

Sergey Konstantinov
28 января 2016, 06:15

Непонятно, зачем вообще Вы держите на карте несколько непрозрачных слоёв одновременно.

По-хорошему, нужно просто удалять невидимые слои с карты, и всё.

 

1) у меня есть карта города, которую я накладываю поверх Яндекс карты. Вот здесь то как я хочу:

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

т.е. одновременно и мой слой, и глобальная карта.

2) карта Яндекс этого города достаточно сильно прорисована, поэтому загрузка (заднего слоя Яндекс) занимает ресурсы, это надо решать.

3) и ещё я хочу сделать края карты прозрачными, чтобы если тайла нет, то я не получал 404.

может есть какие-то трюки для этого?

Sergey Konstantinov
28 января 2016, 06:15

Выходит, что тайлы у Вас таки прозрачные :)

Трюк простой - переопределить getTileUrl(), чтобы за пределами некоторой области он всегда отдавал урл пустого тайла.

Сделать так, чтобы яндексовые тайлы в какой-то области не грузились, в настоящий момент нельзя.

Ура :)

просто хотел услышать типичное решение, счастья Вам, twirl :)