Скрипт смещения подложки на JavaScript

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
Аватара пользователя
Geobotanic
Активный участник
Сообщения: 219
Зарегистрирован: 11 авг 2009, 13:51
Репутация: 81
Откуда: Шахты-Питер-Сейда-Ним
Контактная информация:

Скрипт смещения подложки на JavaScript

Сообщение Geobotanic » 14 фев 2016, 09:32

День добрый друзья.

Просветите, как реализовать скрипт смещения подложки в leaflet.js?. Понимаю, что можно покопаться в исходниках ID или Potlatch-2, но может кто-нибудь уже это делал и знает короткий путь. Тем более, что ларчик должен просто открываться.

ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Скрипт смещения подложки на JavaScript

Сообщение ericsson » 14 фев 2016, 23:10

Все зависит от того, на сколько "честно" вы хотите это сделать (и для какого уровня подробности, соответственно).
Потому что можно написать костыль, который будет смещать весь div со слоем на сколько-то пикселей, но это будет иметь смысл только на малой территории и условно. А если нужно "географически корректное" смещение (в метрах, а не в пикселях и т.п.), нужно менять систему координат слоя.

parshin
Участник
Сообщения: 57
Зарегистрирован: 13 фев 2011, 10:34
Репутация: 26
Откуда: Moscow, Russia
Контактная информация:

Re: Скрипт смещения подложки на JavaScript

Сообщение parshin » 15 фев 2016, 11:11

Нам на работе часто приходится рисовать тайлы в проекции Web Mercator (EPSG:3857) на карте в проекции World Mercator (EPSG:3395) и наоборот.

Делаем мы это этаким читерским приёмом: при каждом смещении карты по широте пересчитываем разность между координатами проекций и смещаем все тайлы на эту разность (более-менее работает). Там есть хитрость - кроме смещения конейнера с тайлами нужно учитывать это смещение при определении, какие тайлы нужно загружать.

В общем, вот репозиторий с этой штукой: https://github.com/ScanEx/Leaflet.TileLayer.Mercator. Вот определение смещения: https://github.com/ScanEx/Leaflet.TileL ... js#L80-L87. Казалось бы, если тут подставить просто константу или алгоритм вычисления смещения в метрах, то получится то, что нужно... Да, и по долготе аналогично нужно доделать смещение...

Zverik
Активный участник
Сообщения: 158
Зарегистрирован: 11 сен 2011, 14:11
Репутация: 96
Откуда: Москва
Контактная информация:

Re: Скрипт смещения подложки на JavaScript

Сообщение Zverik » 15 фев 2016, 17:17

Вот как я делал: https://github.com/Zverik/leaflet-bing-iodb
Принцип примерно тот же, что parshin расписал.

Ответить

Вернуться в «Веб-картография»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость