Map-maker Assistant - программа для облегчения некоторых рутинных операций при работе с картами в формате OziExplorer.
Map-maker assistant
Программа предназначена для облегчения некоторых рутинных операций при работе с картами в формате OziExplorer.
Загрузить версию 1.2.11 beta
К сожалению, у меня нет возможности дальше сопровождать программу, поэтому выкладываю исходные тексты. Программа написана на VB6, есть кое какие комментарии. Короче разобраться можно. Можете править, но копирайт не убирайте, свой, естественно можете добавить.
Загрузить исходные тексты
Модуль MapCreator
Модуль для создания файлов привязки карт (map-файлов) для OziExplorer. Кто привязывал карты вручную, знает, что процесс довольно утомительный. Нужно сначала выбрать и настроить проекцию карты, потом поставить от 3 до 9 точек привязки и главное ввести их координаты. MapCreator по имени образа карты определяет номенклатурное имя листа карты, и зная его вычисляет географические координаты точек привязки. Количество точек привязки задает пользователь. Их может быть четыре – углы карты, пять – добавляется центр листа или девять - добавляются середины сторон карты. Координаты точек привязки в пикселях вычисляются примерно по размеру имиджа карты и ее полям. Размер имиджа для некоторых графических форматов определяется программой, а поля вводятся пользователем. Для тех графических форматов, размеры которых программа определить не может, принимаются размеры по умолчанию 4000 на 4000. Таким образом, пользователю остается только расположить уже имеющиеся точки привязки в нужных местах карты.
Что задает пользователь:
Каталог с образами карт. Каталог должен содержать карты одного масштаба.
Каталог куда писать map-файлы.
Масштаб карт (проверить выбранный программой).
Формат имени карт (проверить выбранный программой).
Число точек привязки.
Верхнее поле карты (в процентах).
Нижнее поле карты (в процентах).
Боковые поля карты (в процентах).
Вид сетки.
Программа просматривает указанный каталог и выбирает все файлы с расширением jpg, png, bmp, gif, tif, kap, cap, ozf, ozf2, ozf3, ecw, sid. По имени определяет номенклатуру листа. Определяет размеры имиджа карты. Создает map-файл для каждого образа и пишет его в указанный каталог. В качестве имени карты пишется номенклатурное название листа.
Что делать дальше - каждый сгенерированный map-файл нужно открыть в OziExplorer'е и мышкой перетащить точки привязки на соответствующие места карты. Это углы, центр карты, центры сторон (в зависимости от числа точек привязки). Сгенерированные точки будут находиться рядом с этими точками. После этого запустите модуль CornerMarkers и он поставит угловые маркеры на те места где стоят первые четыре точки привязки. Зачем это надо: При привязке вручную нужно самому вводить координаты точек, а это долго и возможны ошибки. Неплохо добавить в имя карты название главного объекта карты (см. северную сторону карты) и год выпуска карты (см MapListCreator)
Ограничения программы:
Map datum: Система координат 1942 г. (пока только северное полушарие)
Графические форматы: JPG, PNG, BMP, GIF. Для остальных программа не умеет определять размеры имиджа. Ничего страшного, просто точки придется чуть дальше таскать.
Форматы имени карты: RCC-LLL-N-N или R-CC-LLL-N-N, Где R ряд (А,B и т.д.), C - колонна (1-60), LLL - номер листа. Для 500K это ABVG или ABCG или АБВГ или 1234 или ABCD, для 200K - 01-36, для 100K - 001-144. N - лист карт 50K и 25K.Допустимые номера листов карт масштаба 25K и 50K такие же, как для пятикилометровок. Для тех, кто испытывает трудности с переименованием файлов, рекомендую плагин для FAR'а Regular Expression Search
Для карт масштаба 1:200K номер листа в имени карты - двухзначное число от 01 до 36, вместо римских цифр.
Модуль CornerMarkers
Расставляет угловые маркеры на точки привязки и присваивает им координаты из точек привязки. После того, как я сделал этот модуль, выяснилось, что не все так просто. То, что мы поставили точку привязи и указали координаты, еще не значит, что у этой точки карты будут именно такие координаты. Если точек привязки больше двух, то OziExplorer пытается так повернуть карту, что бы суммарное отклонение координат было минимальным. И если карта не идеально отсканирована, или, не дай бог, склеена, то истинные координаты точек привязки будут отличаться от тех, что мы ввели. Соответственно и координаты угловых маркеров будут неверными. Так что решайте сами пользоваться этим модулем или перетащить маркеры мышкой.
Модуль MapListCreator
Создает список карт в указанном каталоге. Создается файл формата csv (открывается Excel’ом) со следующими колонками:
Edit – стоит + если карту изменяли после генерации MapCreator’ом
List name – номенклатурное имя листа
Meter/pixel – разрешение имиджа (OziExplorer пересчитывает его при каждом сохранении)
Map file – имя map-файла
Image name – имя имиджа
Main object – Название листа карты (главный объект на карте)
Publication date – Год выпуска карты
Информация пользователя
Начиная с колонки Main object, выводится пользовательская информация. Эту информацию помещает пользователь при привязке карты в поле имя карты. Разделитель символ подчеркивания. Пример: Создается map-файл для имиджа карты с именем N43-08.jpg. Модуль MapCreator поместит в map-файл имя карты N-43-08, если имя сделать таким N-43-08_Омск_1985_туристическая, то MapListCreator поместит “Омск” в столбец Main object, “1985” в столбец Publication date, а “туристическая” в следующий столбец без названия и т.д.
Модуль ImagePathRemover
Удаляет путь из ссылки на имидж в map-файле.
Права
см. файл Licence.txt в комплекте поставки
Связь с автором:
egeht (собака) gehtsoft.ru
Изменения в программе:
01.09.2005 1.2.11 beta
Исправлена ошибка индикации в процессе генерации map-файлов.
Исправлена ошибка формирования имени карты масштаба 500K для счетверенных листов.
26.05.2005 1.2.10 beta
исправлена ошибка привязки карт масштаба 25К для сдвоенных и счетверенных листов
исправлена ошибка привязки карт масштаба 200K для строенных листов
понимает, что формат ozf3 это карта, но размер определять не умеет
добавлена возможность генерить сетку Lat/Lon.
при выборе каталога с картами 1M и 500K по умолчанию устанавливается сетка Lat/Lon и 5 точек привязки, 200K и 100K - сетка
метровая и 5 точки привязки, 50К и 25К - сетка метровая и 4 точки привязки.
07.04.2005 1.2.08 beta
исправлена еще одна ошибка, связанная с русской локалью
папка, в которой производится обработка, теперь запоминается на сеанс работы и передается между модулями.
05.04.2005 1.2.07 beta
добавлен модуль, удаляющий путь из ссылки на имдж карты
модуль MapListCreator теперь выдает и разрешение карты в метрах на пиксель. Добавлена строка заголовка столбцов
исправлены мелкие баги.
30.03.2005 1.2.04 beta
исправлена ошибка записи координат угловых маркеров на машинах с русской локалью
добавлен модуль MapListCreator. Формирует список карт в указанном каталоге Формат файла csv, разделитель ";". Открывается программой Exсel. Имя файла - _MapList.csv. Помещается в тот же каталог, где находятся map-файлы. Формат файла: Первоя строка - имя каталога. Все следующий строки: "+" - если карта сохранена их OziExplorer'а, иначе пробел имя map-файла, имя имиджа, имя карты. Если в имени карты есть доп. поля (разделитель "_"), то до девяти полей помещаются в файл. Например, если имя карты N-43_Омск_1984, то в файле будет N-43;Омск;1984
21.03.2005 Версия 1.2.03 beta
Изменен интерфейс программы
Добавлен модуль расстановки угловых маркеров по точкам привязки. В map-файле должно быть четыре угловых маркера. Их координаты заменяются на координаты четырех первых точек привязки. Если углов больше 4-х (поработали MapBorder’ом) то ничего делать не будет
В модуле MapCreator добавлена возможность прервать выполнение при ошибке в исходных данных (например неверное имя файла или неправильно задан масштаб)
В модуль MapCreator может теперь за раз обработать больше 32767 карт (где бы их только взять :-)
В модуле MapCreator исправлена ошибка установки угловых маркеров для карт в западном полушарии
Понимает образ карты в ozf2, но размеры прочитать не может
Если ширина или высота для JPG, PNG, BMP, GIF ноль, то молча и для того и другого берется 4000. Это для того что бы не срубался по делению на ноль для jpg'ов с нестандартной baseline
05.03.2005 Версия 1.1.08 release
понимает буквенные обозначения листов 500K, 50K и 25K в виде ABCD
03.03.2005 Версия 1.1.07 beta
исправлена ошибка привязки сдвоенных/счетверенных карт масштаба 25K и 50K
исправлена ошибка формирование имени карты для сдвоенных/счетверенных карт
исправлена ошибка установки центрального меридиана для сдвоенных/счетверенных карт масштаба 1:1M
01.03.2005 Версия 1.1.01 beta
исправлена ошибка формирования долготы для западного полушария
перед false easting добавляется номер зоны
для карт масштаба 1:500K номер листа может быть не только буквой, но и цифрой
первая буква имени образа может быть строчная или прописная
буква, обозначающая номер листа для 500K, может быть строчной или прописной
умеет генерить map файл для карт масштаба 1:50K, 1:25K
исправлена ошибка работы с рядом G
по первому файлу в выбранном каталоге программа пытается угадать масштаб и формат имени
можно включить user grid on в генерируемом map-файле