Печать
Автор: e-geht   
27.04.2009 21:24

Map-maker assistant

Программа предназначена для облегчения некоторых рутинных операций при работе с картами в формате OziExplorer

 

 

Версия 2.0 beta

 

Загрузить версию 2.0 beta

Версия 2.0 полностью переписана заново man-of-motley с использованием идей MMA 1.0. Написана на C# под MS .net, так что среда .net должна стоять. Скачать можно здесь Microsoft .NET Framework Version 2.0 Redistributable Package (x86). Версия 2.0 полностью покрывает функционал первой версии, посему первай вроде как и не нужна больше.

Основные задачи приложения:

  1. Создание заготовок для привязки карт ГШ СССР (проекция Гаусса-Крюгера, датум - Пулково 1942). Для окончательной привязки достаточно перетащить точки привязки в нужные мечта карты (углы, центр карты, центры сторон - в зависимости от числа точек привязки). В отличии от первой версии поддерживаются и северное и южное полушария.
  2. Обработка списка привязанных карт

Обзор функций приложения:

  1. Привязка
    1. получает список изображений (в том числе рекурсивно), распознает различные варианты именования:
      1. имя картинки - имя квадрата
      2. имя картинки до указанного символа - имя квадрата
      3. имена карт с www.poehali.org
      4. часть имени картинки в которой содержится квадрат указывается регулярным выражением
      5. пытается определить масштаб по имени
      6. определяет размеры bmp, gif, jpg, tiff, png и ozf2 картинок
      7. можно задать размеры картинки
      8. можно задать масштаб в ручную, в этом случае распознается больше вариантов имен, например, римские цифры для 2-х километровок
    2. позволяет вручную задать квадрат и масштаб картинки
    3. может создавать файлы привязки в другом каталоге
  2. Работа со списком карт
    1. получает список карт (в том числе рекурсивно)
    2. операции над списком карт
      1. копирование отмеченных
      2. обновление/установка параметров grid для отмеченных карт
      3. удаление пути из имени файла
      4. обновление углов карты по самым дальним от центра карты точкам привязки
      5. экспорт списка в CSV файл
    3. фильтрация списка карт по:
      1. признаку обработана после автоматического создания привязки или нет
      2. по попаданию карты в track/route/набор waypoints
      3. по регулярному выражению, применнному к имени карты
    4. возможность открыть карты в OziExplorer
  3. Инструменты
    1. подбор листов номенклатуры, на которых расположена указанная точка, показ соседних листов

Программа разработана при финансовой поддержке GehtSoft Group

Все что написано дальше можно прочитать, что бы проще было разобраться с версией 2.0, а можно и не читать :-)


 

Версия 1.2

 

Загрузить версию 1.2.11

К сожалению, у меня нет возможности дальше сопровождать программу, поэтому выкладываю исходные тексты. Программа написана на 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 г. (пока только северное полушарие)
  • Масштаб: 1:1000000, 1:500000, 1:200000, 1:100000, 1:50000, 1:25000
  • Графические форматы: 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 в комплекте поставки.

 

Благодарности

 

Моя благодарность участникам GPS форума на boston.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

Более старые изменения см. в файле поставки.


При полном или частичном воспроизведении данного материала, ссылка на оригинал обязательна.

Copyright © e-geht 2007-2009

 

Показать еще статьи этого автора