День добрый друзья.
Просветите, как реализовать скрипт смещения подложки в leaflet.js?. Понимаю, что можно покопаться в исходниках ID или Potlatch-2, но может кто-нибудь уже это делал и знает короткий путь. Тем более, что ларчик должен просто открываться.
Скрипт смещения подложки на JavaScript
- Geobotanic
- Активный участник
- Сообщения: 219
- Зарегистрирован: 11 авг 2009, 13:51
- Репутация: 81
- Откуда: Шахты-Питер-Сейда-Ним
- Контактная информация:
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Скрипт смещения подложки на JavaScript
Все зависит от того, на сколько "честно" вы хотите это сделать (и для какого уровня подробности, соответственно).
Потому что можно написать костыль, который будет смещать весь div со слоем на сколько-то пикселей, но это будет иметь смысл только на малой территории и условно. А если нужно "географически корректное" смещение (в метрах, а не в пикселях и т.п.), нужно менять систему координат слоя.
Потому что можно написать костыль, который будет смещать весь div со слоем на сколько-то пикселей, но это будет иметь смысл только на малой территории и условно. А если нужно "географически корректное" смещение (в метрах, а не в пикселях и т.п.), нужно менять систему координат слоя.
-
- Участник
- Сообщения: 57
- Зарегистрирован: 13 фев 2011, 10:34
- Репутация: 26
- Откуда: Moscow, Russia
- Контактная информация:
Re: Скрипт смещения подложки на JavaScript
Нам на работе часто приходится рисовать тайлы в проекции Web Mercator (EPSG:3857) на карте в проекции World Mercator (EPSG:3395) и наоборот.
Делаем мы это этаким читерским приёмом: при каждом смещении карты по широте пересчитываем разность между координатами проекций и смещаем все тайлы на эту разность (более-менее работает). Там есть хитрость - кроме смещения конейнера с тайлами нужно учитывать это смещение при определении, какие тайлы нужно загружать.
В общем, вот репозиторий с этой штукой: https://github.com/ScanEx/Leaflet.TileLayer.Mercator. Вот определение смещения: https://github.com/ScanEx/Leaflet.TileL ... js#L80-L87. Казалось бы, если тут подставить просто константу или алгоритм вычисления смещения в метрах, то получится то, что нужно... Да, и по долготе аналогично нужно доделать смещение...
Делаем мы это этаким читерским приёмом: при каждом смещении карты по широте пересчитываем разность между координатами проекций и смещаем все тайлы на эту разность (более-менее работает). Там есть хитрость - кроме смещения конейнера с тайлами нужно учитывать это смещение при определении, какие тайлы нужно загружать.
В общем, вот репозиторий с этой штукой: https://github.com/ScanEx/Leaflet.TileLayer.Mercator. Вот определение смещения: https://github.com/ScanEx/Leaflet.TileL ... js#L80-L87. Казалось бы, если тут подставить просто константу или алгоритм вычисления смещения в метрах, то получится то, что нужно... Да, и по долготе аналогично нужно доделать смещение...
-
- Активный участник
- Сообщения: 158
- Зарегистрирован: 11 сен 2011, 14:11
- Репутация: 96
- Откуда: Москва
- Контактная информация:
Re: Скрипт смещения подложки на JavaScript
Вот как я делал: https://github.com/Zverik/leaflet-bing-iodb
Принцип примерно тот же, что parshin расписал.
Принцип примерно тот же, что parshin расписал.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость