Ниже приведены подробные инструкции с указанием используемых программ. Надеюсь, что информация кому-то пригодится и сэкономит время. Получена методика ПОЛНОСТЬЮ автоматической векторизации карт, где ни одна линия не будет обведена рукой человека. Но подобные методические разработки всегда нуждаются в исправлении ошибок, поэтому все замечания просьба выносить прямо сюда! И потом, на вкус и цвет товарищей нет: кто-то просто больше любит работать руками :O<= Кроме того, версии многих использованных программ уже поменялись на новые:) Въехать в мои рекомендации может и не просто, но для тех, кто прочитал все статьи из указанных Григорием в ссылках, - это не составит труда ;о) Тем более, что я два года назад во всем этом был ни бум-бум - начинал с нуля и собирал по крупицам сведения про проекции и прочее (особо мне в этом помог сайт ne-grusti.narod.ru и несколько учебников по геодезии)...
Для изготовления более-менее компактной и быстро воспринимаемой в походах с экрана прибора векторной GPS-карты необходимо:
[EasyTrace 7.9(.1012)]:
1) Открыть топографический растр.
Примечание: GIF перед использованием в ET необходимо перевести в BMP.
2) уменьшить цветность до 256 цветов (если она была большей)
3) cохранить в BMP
4) провести цветоделение тематического слоя "base" (черный, оттенки серого и синего, гистограммным методом (см. помощь ET)
5) сохранить палитру и выделить бинарный слой
6) произвести чистку растра (>8, <1 или другое), сохранить
6a) при необходимости произвести разрезание растра на требуемое число частей*. Удобнее всего это сделать в Photoshop
7) проверить наличие в любых двух противоположных углах растра объектов минимум 2х2 пикселя (для соответствия координат конечного вектора). Если их нет, то дорисовать в самых крайних точках по диагонали растра квадраты 2x2 пикселя (инструмент "кисть"). Если в пункте 6a) было произведено разрезание, то проверить соответствующим образом каждый из полученных фрагментов
--------------------------------------------------------------------------
* в зависимости от разрешения, плотности и "замусоренности" бинарного растра. Я брал куски с разрешением до ~4x3 тыс. пикс. для плотного и разветвленного растра (содержит относительно много белых (векторизуемых) пикселей, причем довольно сильно перемешанных с черными (невекторизуемыми)) и до ~6x5 тыс. пикс. для неплотного (использовался ПК Pentium IV / 1 Gb RAM / WinXP SP1)). Например, бинарный растр общего тематического слоя гористой области будет плотнее и разветвленнее такого же для равнины за счет множества линий горизонталей. Если заставить ET работать в автоматическом режиме с очень плотным и разветвленным бинарным растром, то размер растра начинает играть ключевую роль в исходе этой векторизации. Процесс может быть прерван или растянут на неопределенно долгое время. Особенно это касается автоматической сборки полигонов. И зависит это даже не от ресурсов системы, а от принципов работы алгоритмов ET. Поэтому необходимо заранее, в зависимости от поставленных задач, определить размер берущихся в обработку кусков. Так, если планируется однослойный вектор (все тематические (цветовые) слои должны будут выделиться в один растр и с него РАЗОМ будет производиться векторизация), то необходимо брать меньшие куски, чем для многослойного вектора (каждый тематический (цветовой) слой - отдельный бинарный растр, => на каждом из бинарных растров меньше объектов для векторизации, => меньшая загруженность Easy Trace (программе не приходится ОДНОВРЕМЕННО векторизовать много объектов) и ниже вероятность прерывания процесса.
--------------------------------------------------------------------------
сохранить растр и на его основе создать проект (если принять, что растров было нарезано много, то следует отметить, что далее речь пойдет только об одном из них)
9) произвести автоматическое оконтуривание (<0 px, <0 px, центры пикселов) и оптимизацию формы полилиний (криволинейные, 0,7 px)
10) экспортировать в шейп ("base")
11) аналогичные операции для тематического слоя "relief" (оттенки коричневого, точечным методом). Можно более грубо
12) операции до оптимизации формы линий включительно - аналогично и для тематического слоя "forest" (оттенки зеленого, гистограммно-точечным методом). Это будут полигоны.
Замечание: иногда нельзя чистить растр! Трудно сказать, какая именно плотность растра будет оптимальной для корректной сборки полигонов - не должно быть сплошных белых полей, но и слишком изрезанный фон тоже плох. Это особенность алгоритмов Easy Trace, необходим творческий подход. В любом случае придется сравнивать конечный вектор с исходной картой. Часто получается, что закрашенными оказываются мелкие озера или "поляны". Тогда нужно поработать руками или переделать на автомате с другими параметрами. Иногда проще отказаться от использования полигонов вообще (хотя они и упрощают восприятие, но их погрешность всегда будет больше).
13) сборка полигонов (допуск 0, без замыкания и прерываний), на новом слое
14) экспорт в шейп с полигонами (указать на вкладке)
[R2V 5.5]:
15) начать New workspace
16) импорт шейпа "base"
17) перевернуть (Vector - Ajust Orientation - Flip Vertical)
18) поменять цвет линий на черный (чисто для удобства)
19) расставить ЧЕТЫРЕ контрольных точки
20) ввести координаты контрольных точек
21) подкорректировать расположение контрольных точек на бОльшем увеличении
Примечание: на этом этапе можно (но не обязательно) "почистить" вектор: удалить короткие (обычно 0 - 4 px) линии, в зависимости от необходимого объема и полноты отображения. Это повлияет на размер конечного файла в лучшую сторону
22) сохранить файл контрольных точек
23) экспортировать вектор в шейп, помеченный r2v; преобразование bi-linear
24) начать New workspace
25) импорт шейпа рельефа
26) перевернуть
27) импортировать контрольные точки
28) проверить расположение к.т. и подкорректировать
- на этом этапе желательно "почистить" вектор: удалить короткие (обычно 0 - 4 px) линии
29) экспорт аналогично предыдущему
30) начать New workspace
31) импорт шейпа леса
32) перевернуть
33) импортировать к.т.
34) проверить расположение к.т. и подкорректировать
35) удалить линии по критерию длины (обычно 0 - 20 (можно до 100) px), в зависимости от корректности вектора (соотнося с цветным оригиналом) и необходимого в дальнейшем объема. Этот шейп все равно будет не очень точным
36) экспорт в шейп с полигонами (указать); преобразование bi-linear
[MapEdit 1.0.17]:
37) "попробовать" открыть получившиеся шейпы в одном поле (возможны ошибки абсолютной и относительной привязки, векторизации), визуально сравнить с исходной картой, сохранить с любыми параметрами для оценки общего объема; если замечены ошибки - возврат к предыдущим шагам (их лучше не закрывать до самой последней операции)
38) если все в порядке, открыть Basemap для данной территории (Basemap - это шаблон, пустая карта, охватывающая всё пространство нужной территории, с одной хорошо видимой линией (например, "шоссе"), которую легко удалить, и всеми необходимыми уровнями и настроенными параметрами (кроме имени и ID). Хотя бы одна линия в шаблоне нужна, потому что совсем пустой файл не может быть сохранен. Наличие Basemap сильно сокращает время при обработке большого массива соседних карт)
39) удалить техническую линию и импортировать шейп "base" в необходимые уровни увеличения (они уже имеются в Basemap), указав центральный меридиан зоны.
- для обычных (в плане прошивки) приборов и MapEdit импортировать как res.street (черн. тонк. непрер. линии), с подписями (при этом нужно обязательно кликнуть на списке "нулей", чтобы они выделились синим - в противном случае шаблоны подписей не добавятся);
- для перепрошитых с изменением подписей линий (где уже не нужно добавлять пояснительные названия, а они зашиты в firmware) - как line без подписей
40) импорт рельефа аналогично, для всех прошивок - без подписей, как элемент рельефа (коричневые тонкие непрерывные линии)
41) импорт леса аналогично:
- для обычных прошивок как reservation (зел. сплошн.), с подписями;
- для препрошитых - как forest без подписей
42) сохранить map с любыми параметрами, закрыть
--------------------------------------------------------------------------
Примечание: для удобства просмотра можно заменить названия объектов в MapEdit на свои (это можно сделать, открыв файл mapedit.exe например в редакторе Vega и поиском найдя нужное название). При этом должна сохраняться общая длина фрагмента программы до названия следующего объекта, причем удалять можно только буквенные элементы, а не двоичные (иначе прога испортится:)) И, естественно, общий размер файла должен остаться тем же самым вплоть до байта, а то она вообще не запустится... В общем, экспериментируйте!
Аналогично можно поступить и с прошивками Garmin к своему прибору. Это тоже тема отдельного разговора.
--------------------------------------------------------------------------
[Word (в случае для обычных прошивок)]:
43) открыть, найти и заменить все "Type=0x6^pLabel= 0.000" на "Type=0x6^pLabel=Line" и "Type=0xd^pLabel= 0.000" на "Type=0xd^pLabel=Forest", сохранить
44) к сожалению, Word сразу не ищет всё
, поэтому закрыть файл (но не закрывать редактор), снова открыть и повторно найти - заменить оставшиеся подписи (их теперь можно выбрать из всплывающего списка окна поиска), затем поискать " 0.000" для контроля (иногда приходится повторять процедуру сохранения - выхода - поиска третий раз)
45) повторно сохранить и закрыть файл (если предполагается дальнейшая работа, Word лучше не закрывать:)
[MapEdit 1.0.17]:
46) открыть, проверить настройки карты TRE sise (от 511 до 5000), TRE margin (0.000) и max elements (127), непрозрачность, уровни, ввести ID и имя, сохранить map в нужной директории
47) иногда бывает нужно получить дополнительно еще и обрезанный вариант (например, без рамки) - тогда использовать инструмент trim, поменять ID и имя, "сохранить как" под другим именем
48) экспорт в img, контроль размера файла (четверть номенклатурного листа будет занимать в трехслойном виде примерно 1 Мб, тогда как в однослойном - на треть меньше)
49) загрузка в прибор, проверка внешнего вида, скорости чтения и привязки
Изготовление (включая работу компьютера) одного вектора занимает ~45 - 60 минут на Pentium IV / 1 Gb RAM / WinXP SP1 при достаточной освоенности метода. Большой плюс - мало ручной работы и, следовательно, неконтролируемых погрешностей со стороны рук
Руками производится только привязка - самый ответственный процесс.
--------------------------------------------------------------------------
Приложения: I. При создании карты в один шейп в ET сразу выбираются гистограммой (см. помощь ET) все необходимые тематические цвета, - нужно стремиться получить оптимальную плотность конечного бинарного растра. Такой тип вектора применим для картографических работ на местности, когда не требуется высокая скорость восприятия, и всегда есть время свериться с бумажной картой. Исключается относительная погрешность между тематическими слоями, снимается бесполезный объем и теоретические потери каждого тематического слоя. Сильно упрощается процедура привязки и сведЕния. Затрачиваемое время - почти в два раза меньше, чем на многослойный, за счет меньшего количества "ручной" работы.
II. Выделение слоя гидрографии для использования в черно-белых приборах не очень рационально, так как на экране все равно сходу эти объекты отличить нельзя. Либо они будут слишком светлыми (а объекты эти, несомненно, важны), либо всё равно сольются с дорогами и границами или с рельефом. Лишний слой только добавит погрешности и увеличит размер. Другим типом объектов добавлять гидрографию имеет смысл только для цветных приборов. Поэтому на свои карты я добавляю "базовый", или "base" шейп, содержащий и черные линии, и гидрографию. Но я попробовал и вот такой вариант, в котором реки и озера можно будет отличить не по типу отображения, но при наведении на них курсора:
1) открыть BaseMap в MapEdit
2) импортировать "черный" шейп, выделенный только на основе черного и оттенков серого, как Line (Res.street) с полями подписей (в случае, если предполагается использование на родной прошивке; в противном случае без полей). Если прошивка GPS сама содержит "Line", - замена не нужна
- если хотите добавить подписи, нужно обязательно кликнуть на списке "нулей", чтобы они выделились синим - иначе шаблоны не добавятся
3) сохранить и открыть в Word (для стандартных прошивок)
4) найти и заменить "Type=0x6^pLabel= 0.000" на "Type=0x6^pLabel=Line"
5) сохранить, закрыть файл, не закрывая окна Word, снова открыть файл в Word, повторно заменить, проверить (искать " 0.000") и снова сохранить
6) аналогично подготовить map-файл для водных объектов (в данном случае замена на "Type=0x6^pLabel=Water" обязательна). Шейп с водными объектами создается отдельно от "черного"
7) открыть первый файл, кинуть на него второй; теперь в одном поле находятся два класса объектов, принадлежащих к одному типу
импортировать шейп рельефа без полей
9) импортировать шейп леса (с полями, если прошивка "классическая" или без них) и сохранить
10) дважды открыть в Word (для стандартных прошивок) и аналогично заменить "Type=0xd^pLabel= 0.000" на "Type=0xd^pLabel=Forest"
11) открыть в MapEdit, поставить ID и имя, все проверить и сохранить
12) экспорт в IMG
Если не требуются поля для Forest и Line, можно начать с создания Water, а потом импортировать все остальное без полей.
=======================================
Результат получается довольно приличный.
Если нужен пример, то он лежит вместе с исходным растром к нему в моем ящике, пароль к ящику соответствует адресу. После открытия img-файла, который находится в zip-архиве в соответствующем письме, надо нажать Ctrl+0, чтобы просмотреть именно уровень с данными. Это не ошибка, просто того требовали условия совместной закачки файлов в прибор (тема для отдельного разговора). В общем, разберётесь! Перечислять благодарности повторно не буду - они итак уже почти все перечислены Григорием. Всем удачи и дорабатывайте методы! Наука победит!
Инженер Гарин
взято от сюда
http://southural.ru/experience/201.html