Hatred's Log Place

DON'T PANIC!

Feb 11, 2016 - 2 minute read - Comments - туризм maps

Быстро и ненавязчиво готовим карту для открытия в QMapShack

Для примера будет рассмотрен сервис http://loadmap.net, который предоставляет карты с привязками в формате OziExplorer.

Минусом подобных карт бывает то, что у них есть рамка и отдельные листы карт перекрывают друг друга при открытии. Для того, что бы рамку резать я уже написал ранее((ozi2map от туда более не актуальна)) про свою программку geocrop.

Теперь про самый смак: QMS умеет открывать .vrt файлы. VRT файл это XML документ, с описанием привязки и различных преобразований, понятные движку GDAL. Так вот, в ходе беглого исследования оказалось, что мой способ резки рамки применим к VRT файлам: данное преобразование просто сохраняется внутри и применяется при открытии! Если добавить сюда тот факт, что переконвертации самого растра не происходит и просто формируется дополнительный маленький XML файл, то счастье становится полным.

Рассматривать вопрос сборки программы я подробно не буду, скажу только, что нужны dev пакеты для libgdal и libproj4. Устанавливать программу не нужно - просто скопируйте в удобное место, у меня это ~/bin. Сборка и работа на Windows не проверялась.

Повторяем эти шаги для всех нужных листов и добавляем в QMS путь до этих карт, после чего имеем такую картину: Видны границы реальных карт, видно, что они перекрываются, но при этом это не мешает отображать нужные данные. На скриншоте использована карта в масштабе 200k. Для любителей подкастов можно поглядеть на ютубе подготовку карты из 4х пятисотметровок: https://youtu.be/7mp35wYk0IQ
Стоит отметить, что если одновременно открываются карты нескольких масштабов, QMS неплохо выбирает когда начинать её отрисовывать. Но: Карты более мелких масштабов должны идти перед картами более крупных масштабов! а так же стоит учитывать, что пока есть косяки в отрисовке, выглядит это так: откройте в полном размере. При этом, если чуть-чуть сдвинуть карту, области перерисуются. UPD: косяков не наблюдается, если собирать карты одного масштаба в атлас (один VRT). Об этом я напишу чуть позже. Ещё нужно поэкспериментировать с тайлами. Возможно будет профит при прорисовки больших карт. UPD: корявенький перевод на сайте QMS: https://bitbucket.org/maproom/qmapshack/wiki/QuickWayToPrepareRasterMapForQMapShack