Hatred's Log Place

DON'T PANIC!

Jun 16, 2012 - 3 minute read - Comments - туризм maps

Привязка генштабовских карт в QLandkarteGT

В интернетах уже есть заметки по этой тематике, например ссылки приводил в post/2009-03-15_11.42_paru_zametok_o_qlandkartegt, но что бы было под рукой. Опускаться до того, в какой пункт меню заходить не буду, приведу чисто технические моменты.

Исходные данные: лист километровки О-50-103.tiff

На первом шаге нужно указать проекцию карты, для нашего родного генштаба проекция будет примерно такого вида:

+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0=0 +ellps=krass +units=m +no_defs

+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000 +y_0=0 +ellps=krass +towgs84=23.9,-141.3,-80.9,0,-0.37,-0.85,-0.12 +units=m +no_defs

(параметр towgs84, определяет параметры перехода к датуму wgs84, который используется в том же GPS, этот параметр автоматом добавится, если в мастере настройки проекции выбрать датум Pulkovo 1942)

собственно для каждого листа миллионки она будет своя, жирным выделено то, что будет меняться от листа к листу. Теперь пояснения: * lon_0 - центральный меридиан * x_0 - мнимый восток (false easting)

В статье post/2011-06-26_14.58_gotovim_rastrovuju_kartu_dlja_navigatora_garmin_gpsmap_62s я уже показывал как рассчитывать эти параметры, продублирую и здесь:

lon_0 = Nз * 6 - 3            # центральный меридиан по известной зоне
x_0   = Nз * 1000000 + 500000 # мнимый восток (false easting)
Nз    = floor(lon / 6) + 1    # номер зоны по любому значению долготы на листе, floor - взятие целой части от деления
Nз    = (lon_0 + 3) / 6       # номер зоны по центральному меридиану (частный случай)

Как видно, оба параметра зависят от номер зоны, что бы не заморачиваться, есть ещё один очень простой способ определения её: по номеру листа, вычитая из него 30. Т.е. лист у нас O-50, значит его номер - 50, тогда:```scilab Nз = 50 - 30 = 20

Тогда значения центрального меридиана и мнимого востока:```scilab
lon_0 = 20 * 6 - 3 = 117
x_0   = 20 * 1000000 + 500000 = 20500000

Так же, для простоты, можно принять, что мнимый восток это: 500000 перед которым написан номер зоны, как он есть, т.е. как результат объединения двух строк (в программировании): "20" + "500000" = "20500000"

Переходим ко второму шагу. Тут нужно указать проекцию, в которой вводятся координаты точек привязки: * если привязки указаны в географических координатах (долгота и широта, особенно удобно на листах с рамкой - на них у нас имеются 5 точек указанными координатами - грех не воспользоваться), то проекцию можем ввести: +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +proj=latlong +ellps=krass +towgs84=23.9,-141.3,-80.9,0,-0.37,-0.85,-0.12 и не особо парить мозг. Тогда значения координат точек нужно вводить примерно так: N57 20.00 E117 00.00 не значащие нули опускать не нужно * если привязываете по линиям километровой сетки, то копируете проекцию с первого этапа, а значения координат указываете в метрах, примерно так: 20520000 6356000 подробнее о привязывании по километровой сетке не расскажу - делал всегда по координатам.

Собственно, на этом всё, осталось нажать кнопку Process.