Hatred's Log Place

DON'T PANIC!

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

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

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

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

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

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

Вот, преамбула завершилась… Основная часть будет короче :)

  1. Скачиваем растровый файл карты, допустим это 500-метровка K-53-027-A, тогда файл будет K-53-027-A.png

  2. Скачиваем файл привязки K-53-027-A.map

  3. Обрезаем рамку и формируем VRT:

    ~/bin/geocrop -s 50k -f VRT K-53-027-A.map K-53-027-A.vrt
    

    Обратите внимание на параметр -s - он задаёт масштаб листа в виде делителя, т.е. опущена 1:, а буква обозначает степень десятки на которое нужно домножить: 50k (кило) = 50 * 10^3 = 50000 и масштаб тогда 1:50000, т.е. пятисотметровка.

Повторяем эти шаги для всех нужных листов и добавляем в QMS путь до этих карт, после чего имеем такую картину:

Видны границы реальных карт, видно, что они перекрываются, но при этом это не мешает отображать нужные данные. На скриншоте использована карта в масштабе 200k.

Для любителей подкастов можно поглядеть на ютубе подготовку карты из 4х пятисотметровок: https://youtu.be/7mp35wYk0IQ

Стоит отметить, что если одновременно открываются карты нескольких масштабов, QMS неплохо выбирает когда начинать её отрисовывать. Но:

Карты более мелких масштабов должны идти перед картами более крупных масштабов!

а так же стоит учитывать, что пока есть косяки в отрисовке, выглядит это так:

откройте в полном размере. При этом, если чуть-чуть сдвинуть карту, области перерисуются.

UPD: косяков не наблюдается, если собирать карты одного масштаба в атлас (один VRT). Об этом я напишу чуть позже.

Ещё нужно поэкспериментировать с тайлами. Возможно будет профит при прорисовки больших карт.

UPD: корявенький перевод на сайте QMS: https://bitbucket.org/maproom/qmapshack/wiki/QuickWayToPrepareRasterMapForQMapShack

Tags: geocrop gis maps qmapshack туризм

Читинза под снегом 2 QMapShack

comments powered by Disqus