Openlayers/Leaflet проблемы с зумом TMS-слоя
-
- Новоприбывший
- Сообщения: 11
- Зарегистрирован: 03 сен 2013, 15:55
- Репутация: 1
Openlayers/Leaflet проблемы с зумом TMS-слоя
Здравствуйте.
Есть слой TMS, сгенерированный MapProxy, хочу отображать его поверх карты OSM оверлеем, но столкнулся с такой проблемой - если в свойствах слоя не ставить isBaseLayer в false - при переключении радиобатона оба слоя отображаются правильно, естественно по очереди. При попытке всунуть в свойства слоя параметр isBaseLayer: false слой перестает отображаться.
Пытаясь решить проблему обнаружил следующее - допустим, у меня при открытии карты заданы координаты центра и уровень зума, пусть будет = 12.
Урл, по которому леерсы пытаются получить тайл, выгллядит примерно так: ../tms/1.0.0/имя_слоя/12/2439/2948.png", что вроде бы правильно, но - тайл на самом деле находится по адресу ../tms/1.0.0/имя_слоя/11/2439/2948.png". Вот. Как бороться???
ЗЫ - подозреваю, что связано с тем, что маппрокси начинает нумерацию слоя с 0, а леерсы - с 1. Если так, то как обойти?
Есть слой TMS, сгенерированный MapProxy, хочу отображать его поверх карты OSM оверлеем, но столкнулся с такой проблемой - если в свойствах слоя не ставить isBaseLayer в false - при переключении радиобатона оба слоя отображаются правильно, естественно по очереди. При попытке всунуть в свойства слоя параметр isBaseLayer: false слой перестает отображаться.
Пытаясь решить проблему обнаружил следующее - допустим, у меня при открытии карты заданы координаты центра и уровень зума, пусть будет = 12.
Урл, по которому леерсы пытаются получить тайл, выгллядит примерно так: ../tms/1.0.0/имя_слоя/12/2439/2948.png", что вроде бы правильно, но - тайл на самом деле находится по адресу ../tms/1.0.0/имя_слоя/11/2439/2948.png". Вот. Как бороться???
ЗЫ - подозреваю, что связано с тем, что маппрокси начинает нумерацию слоя с 0, а леерсы - с 1. Если так, то как обойти?
Последний раз редактировалось molot 11 сен 2013, 15:00, всего редактировалось 3 раза.
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Openlayers проблемы с отображением TMS-слоя в оверлее
Spatial is now, more than ever, just another column- The Geometry Column.
-
- Новоприбывший
- Сообщения: 11
- Зарегистрирован: 03 сен 2013, 15:55
- Репутация: 1
Re: Openlayers проблемы с отображением TMS-слоя в оверлее
Спасибо, Денис, с OL работает.
Решил попробовать ради интереса то же самое с Leaflet: если в свойствах слоя указать tms: true, и zoomOffset: -1, это не работает. LL получает картинки с номерами 1800 и 1801 (как я понимаю, номера характерны для пустых тайлов). Если не указывать zoomOffset - урл для тайла получается правильный, за исключением уровня зума. Если не указывать tms: true, а zoomOffset сделать -1, уровень зума в урле правильный, но тайлы запрашиваются из другой области, видимо из-за инверсии X-Y.
Не сталкивались с таким?
Решил попробовать ради интереса то же самое с Leaflet: если в свойствах слоя указать tms: true, и zoomOffset: -1, это не работает. LL получает картинки с номерами 1800 и 1801 (как я понимаю, номера характерны для пустых тайлов). Если не указывать zoomOffset - урл для тайла получается правильный, за исключением уровня зума. Если не указывать tms: true, а zoomOffset сделать -1, уровень зума в урле правильный, но тайлы запрашиваются из другой области, видимо из-за инверсии X-Y.
Не сталкивались с таким?
-
- Новоприбывший
- Сообщения: 11
- Зарегистрирован: 03 сен 2013, 15:55
- Репутация: 1
Re: Openlayers проблемы с отображением TMS-слоя в оверлее
Точнее, даже так:
леерсы после указания zoomOffset: -1 запрашивали тайлы по такому же урлу, менялся только уровень зума, а лифлет меняет окончание урла полностью, примерно так:
было:
../tms/1.0.0/имя_слоя/13/4878/5896.png
стало:
../tms/1.0.0/имя_слоя/12/782/1800.png
леерсы после указания zoomOffset: -1 запрашивали тайлы по такому же урлу, менялся только уровень зума, а лифлет меняет окончание урла полностью, примерно так:
было:
../tms/1.0.0/имя_слоя/13/4878/5896.png
стало:
../tms/1.0.0/имя_слоя/12/782/1800.png
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Openlayers/Leaflet проблемы с зумом TMS-слоя
В Leaflet для этого есть опция, в MapProxy - настройка origin grid-а.
Spatial is now, more than ever, just another column- The Geometry Column.
-
- Новоприбывший
- Сообщения: 11
- Зарегистрирован: 03 сен 2013, 15:55
- Репутация: 1
Re: Openlayers/Leaflet проблемы с зумом TMS-слоя
Вероятно Вы правы, но, на мой взгляд, получился костыль
Решение:
1. В свойствах слоя LL установлен параметр TMS:true
2. в конфиге MapProxy:
Простое добавление в раздел grids параметра origin: 'nw' результата не принесло (визуально ничего не поменялось), пришлось добавить еще один лишний пункт в res (resolutions), в итоге секция grids выглядит так:

Решение:
1. В свойствах слоя LL установлен параметр TMS:true
2. в конфиге MapProxy:
Простое добавление в раздел grids параметра origin: 'nw' результата не принесло (визуально ничего не поменялось), пришлось добавить еще один лишний пункт в res (resolutions), в итоге секция grids выглядит так:
Код: Выделить всё
grids:
my_grids:
base: GLOBAL_MERCATOR
origin: 'nw'
srs: 'EPSG:3857'
res: [
156543.03392804097,
156543.03392804097,
78271.51696402048,
39135.75848201024,
19567.87924100512,
9783.93962050256,
4891.96981025128,
2445.98490512564,
1222.99245256282,
611.49622628141,
305.748113140705,
152.8740565703525,
76.43702828517625,
38.21851414258813,
19.109257071294063,
9.554628535647032,
4.777314267823516,
2.388657133911758,
1.194328566955879,
0.5971642834779395,
]
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Openlayers/Leaflet проблемы с зумом TMS-слоя
В MapProxy по дефолту значение origin - 'sw', что соответствует TMS. Поэтому если в свойствах Leaflet у вас стоит 'TMS:true', то ничего в MapProxy менять не нужно.
Spatial is now, more than ever, just another column- The Geometry Column.
-
- Новоприбывший
- Сообщения: 11
- Зарегистрирован: 03 сен 2013, 15:55
- Репутация: 1
Re: Openlayers/Leaflet проблемы с зумом TMS-слоя
Да, я так и думал. Однако, не работает( Точнее, происходит так, как описано выше. В новой версии MapProxy (которая 1.6.0a пока) кстати добавлена новая проекция - называется GLOBAL_WEBMERCATOR. Оптимизированная для работы с Google Maps, OSM и т.п. Она использует параметры, аналогичные GLOBAL_MERCATOR + srs и origin как у меня в примере выше.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя