В продолжении статьи МСК и MapInfow.prj, приведу описание простого алгоритма для определения параметров неизвестной местной системы координат, именно параметров для описания МСК в файле mapinfow.prj.
Описываемый алгоритм основывается только на практическом опыте и не претендует на абсолютную точность и универсальность. Алгоритм заключается в подборе осевого меридиана определенной зоны МСК.
Итак, для определенного района работ дано:
- имеется таблица с проекцией, неважно какой именно (долгота-широта, UTM) с двумя точками, назову их A и B, в районе меридиана M;
- имеется таблица в план-схеме, с теми же двумя точками A, B и координатами в метрах.
Выполняю следующие действия с использованием MapBasic:
- открываю таблицы в проекции (UTM.tab) и в план-схеме (MSK.tab);
- задаю погрешность E, например 3 сантиметра, для выполнения расчётов длин отрезков;
- рассчитываю расстояние Rmsk между точками A и B в таблице MSK;
- предположу, что определяемая мной зона трех-градусная, и в таблице UTM шагну на запад от меридиана M на 2 градуса, скажем так, «с запасом»;
- от меридиана (M-2) начну двигаться на восток, всего на 3 градуса, с шагом 1 минута;
- для каждого шага в одну минуту, буду устанавливать текущий меридиан в качестве осевого и рассчитывать расстояние Rprj между точками A и B в таблице UTM;
- если (Rmsk - Rprj) меньше E, считаю необходимые смещения по долготе и широте и вот текущее значение меридиан плюс смещения и есть претенденты на искомые параметры!
Как это выглядит на практике с использованием программы set4msk.
Открываю в MapInfo таблицы
utm.tab (UTM зона 40, Северное полушарие (WGS 84)) с двумя точками
Point 435481.33 6095581.03
Symbol (35,0,12)
Point 436863.59 6094610.6
Symbol (35,0,12)
и msk.tab (План-схема (метры)) с двумя точками
Point 1361386.82 688642.02
Symbol (35,0,12)
Point 1362796.38 687710.47
Symbol (35,0,12)
Запускаю программу set4msk.mbx. Указываю параметры в первом диалоговом окне.

В следующем окне параметров устанавливаю 54 меридиан вручную. Частный случай — так как предлагаемый программой 53 выходит за пределы UTM зона 40 таблицы utm.tab.

Далее программа будет перебирать-пробовать в качестве осевого меридиана зоны искомой МСК от 54 до 57 с шагом в одну минуту. Как только расстояние между точками в проекции сравняется с расстоянием в план-схеме, в рамках указанной точности, программа считает необходимые смещения по долготе-широте и выдает результат расчетов.
Результат работы программы в окне сообщений MapInfo.
Начало процесса подбора параметров.
=== Найдено решение ===
Осевой меридиан: 55.03333333333
Смещение по долготе: 1300000
Смещение по широте:-5409414.7
Процесс завершен.
Остается в файл mapinfow.prj добавить две строки
"--- МСК ХХ ---"
"Зона 1", 8, 1001, 7, 55.03333333333, 0, 1, 1300000, -5409414.70
Программу set4msk.mbx можно скачать вместе с исходным кодом бесплатно на странице проекта set4msk.
© Бирючков Д.А. 2011