Раз попалась мне в руки Garmin eTrex Vista, раз мы идем с ней в поход в район Прибайкалья и раз у нее целых 24 мегабайта памяти, то возникает желание загрузить в приемник карту тех мест, куда мы пойдем, и желательно физическую. Но, как и следовало ожидать, таких карт в природе не существует, а существует только растровая двухкилометровка из альбома Прибайкалье. Вывод неутешительный, будем пытаться векторизовать карту самостоятельно, лишний experience никогда не помешает. Наш маршрут проходит полностью по листу с номером 72 альбома Прибайкалье или по листу 19 альбома Хамар-Дабан, что одно и тоже, значит, его я и буду пытаться погрузить в GPS.
В этой статейке я опишу, как я векторизовал карту, и что в результате получилось. Не претендую на открытие Америки, тем более на то, что нашел наиболее простой и лучший способ векторизации карт для Garmin, но главное - он работает. И так начнем. Буду предполагать, что читатель - полный чайник во всей этой тематике, то есть ровно на том этапе, с которого я начал.
Оказывается, в приемнике Гармин основная система координат - WGS84, то есть импорт и экспорт всех точек и карт происходит в этой системе координат. А карта, которую я векторизую, дана в системе Пулково - 1942. Отсюда начинается первая пачка мучений. Чтобы во всем разобраться и убедиться, что нет ошибок, сначала надо попытаться привязать карту в OziExplorer. Я пользуюсь OZI версией 3.95.3, которую можно скачать на родном сайте http://www.oziexplorer.com. Поройтесь, в сети обязательно найдутся краки.
Устанавливаем в любое удобное место, запускаем и пытаемся привязать карту.
Возможны три варианта:
1. На карте есть градусная сетка. Самый простой вариант, разберетесь сами.
2. На карте есть километровая сетка, но нет градусной. Это как раз мой случай.
3. На карте нет ни той ни другой сетки. Печальный случай, в этой статье не рассматривается.
Моя карта имеет километровую сетку, но не имеет градусной. Что бы ее правильно привязать, надо знать в какой она находится зоне, знать центральный меридиан этой зоны и координаты хотя бы одной точки карты. На мое счастье, половина работы по привязке карты уже сделана: на сайте http://www.angara.net узнал, что центральный меридиан для этой зоны 105 градусов, что для узла сетки в левом верхнем углу рядом с мягким знаком от слова "Гань" координаты (468, 5704).
Запускаем Ози, заходим File/Load and calibrate map, выбираем картинку и видим такой диалог:
В Map Datum выбираем Пулково 1942, в Map Projection выбираем Transverse Mercator, при этом выскакивает окно с настройками проекции:
Давайте в вкратце разберемся, что это за цифры. 105 - это центральный меридиан нашей зоны. Ставим E потому что это восточная часть полушария. Scale Factor по всей видимости некое масштабирование, почему оно равно 1, не знаю. А вот 500000 - это смещение вдоль оси X. Оно означает, что в точке лежащей на центральном меридиане ваша координата по X будет равна 500000, а не ноль. Нужно это для того, чтобы по всей зоне координата X была положительная (если бы на центральном меридиане был ноль, то соответственно по одну сторону координаты будут положительные, по другую отрицательные). Сей замечательный факт еще в дальнейшем сыграет свою роль.
Теперь открываем закладку Point 1, кликаем курсором мышки в узел сетки на нашей карте, для которого мы знаем вертикальное и горизонтальное смещение
и прописываем известные координаты (в метрах):
Что бы привязать карту, Ози нужно как минимум 3 точки, для пущей верности надо ввести 4 по углам карты. Для этого надо вычислить их координаты с помощью километровой сетки (между линиями по 4 км). Не забудем, что при движении направо, координата X увеличивается, а при движении вниз координата Y уменьшается. Потом нажимаем Save и сохраняем файл в озиевском формате *.map.
Первый тест, который должна пройти ваша привязка - координатные линии, проведенные Ози и их растровые собратья должны максимально совпадать. Для этого включим отображение сетки в Ози: Map/Grod line setup:
Еще зайдем в настройки Ози: File/Configuration и на закладке Maps выберем User Grid:
Теперь любуемся на наше произведение, если сетки практически совпадают, то почти наверняка все сделано правильно. Для пущей верности можно попросить у местных координаты каких-нить примечательных точек в формате Long/Lat, вбить их в Ози и посмотреть куда лягут. Если попали куда надо, можно спать спокойно. В моем случае это точки присланные знакомыми из Иркутска baikalpoints.wpt
Если все сделано правильно, значит мы застрахованы от ошибок при позиционировании карты, когда будем ее векторизовывать.
1. Программа, в которой больше всего работаешь и собственно векторизуешь карту это R2V. В ней происходит привязка карты к нужным координатам, полуавтоматическая и ручная прорисовка нужных деталей по слоям и экспорт в файлы ArcView *.shp
2. Программа ArcView нужна для того, чтобы открыть файл shp генеренный из R2V и пересохранить в этом же формате. При этом исправляется какой-то глюк в файле, который оставляет после себя R2V, и файл уже можно грузить в MapEdit. Сразу импортировать в MapEdit полученный из R2V файл SHP не получается, потому что отображается только первый элемент, который вы рисовали, а остальные исчезают. Этот глюк удалось обойти только с промежуточным звеном ArcView.
3. MapEdit импортирует shp-файлы, при этом преобразует координаты в систему WGS84. Там же вы выбираете, как будут отрисовываться ваши объекты в приемнике. Карта сохраняется в польском текстовом формате.
4. Программа cgpsmapper.exe импортирует файл в польском текстовом формате и сохраняет его в формате IMG.
5. Программа SendMap посылает ваш img в приемник.
Такой неблизкий путь надо пройти, чтобы увидеть правильнопривязанную карту в вашем Garmin-е.
Где ее достать в сети, не знаю. Поищите, может найдете. :)
Запускаете, заходите File/Open image or project, выбираете вашу картинку, смотрите, любуетесь. Все это вам предстоит прорисовать практически руками. :)
Для начала надо привязать карту, поэтому жимаем сюда: и выставляем те же 4 точки, которые выставляли в Ози:
Сохраняем точки привязки File/Save control points и получаем файл 19.cpt. Он вам не раз еще пригодится.
Теперь совет, что б не повторять моих ошибок, заведите много слоев с помощью кнопки :
и в каждом слое рисуйте объекты определенного типа. Если вы временно не редактируете слой, то закройте его с помощью кнопки Lock/Unlock. Если слой мешается, его можно сделать Off. Чтоб слой было видней на карте, можно выбрать подходящий цвет.
Не буду описывать подробности работы с R2V. К нему прилагается замечательный 30 minutes tutorial, читайте и въезжайте.
Возможности R2V мне очень понравились, аккуратная безглючная программа позволяет достаточно быстро просто руками прорисовать все главные горизонтали (у меня на это ушло часа 4 для карты Хамар-Дабана, чего говорить о Южном Урале, где горизонталей гораздо меньше). А что касается рек, то их можно векторизовать практически в автоматическом режиме, если перед этим поколдовать в Photoshop-е чтоб кроме рек на карте ничего не осталось. К сожалению, горизонтали так вычленить не удалось отчасти, потому что исходный растр был не очень хорошего качества, отчасти потому что их слишком много и они слишком часто и сам-то не всегда разберешься, какая горизонталь куда идет.
Один совет. Если вы, как и я решили ручками обвести все основные горизонтали, делайте это сразу аккуратно, а то потом будете долго и упорно поправлять передвигая узловые точки туда, где им следует быть.
Я в R2V обвел все основные горизонтали, часть не основных в том районе, куда мы собираемся идти, все реки, все дороги, поставил станции и мосты. По идее можно всем объектам дать название, оно будет отображаться в приемнике, когда наведете на него курсор, но мне было лень.
В R2V можно прорисовать и экспортировать точечные и линейные объекты (точечные - это, например, станции, а линейные - реки). Для этого они, разумеется, должны быть в разных слоях. А вот площадные объекты, такие как озера, экспортировать не удалось, хотя MapEdit понимает такие шейпы и умеет их импортировать. Я нашел такой выход. Прорисовал форму озер в R2V, открыл их в ArcView, Создал там новую тему и поверх первой повторил только уже как полигоны (они даже автоматически закрашиваются). Первую тему просто забыл, а вторую (которую создал в ArcView) экспортнул в SHP и потом уже грузанул в MapEdit. Тогда озера выглядят на карте озерами.
Вот как выглядят мои художества в R2V, если отключить показ карты. Желтые - это вспомогательные горизонтали, остальное это основные горизонтали и реки. В левом верхнем углу часть ЛЭП-ы.
Вот как это выглядит поверх карты:
После того, как вы достаточно нарисовались, можно экспортировать результаты своего труда в файлы SHP. Это надо делать отдельно по каждому слою, для этого надо отключить все слои кроме одного и нажать File/Export Vector... Выбрать тип SHP, и в возникшем диалоге ввести так:
Если вы экспортируете точечный слой (содержащий точечные объекты) выберите Points.
Кроме того, в R2V не забывайте сохранять проект. Если что, в проект можно добавить шейп, пользуясь меню File/Import geo-coded vector, где надо указать точно те настройки, которые вы выставляли, когда экспортировали SHP.
Как уже говорилось, в MapEdit не получается загрузить полученные шейпы по какой-то странной причине. Если попытаться, вы там увидите только первую линию или только первую точку. Может есть другой способ побороть этот глюк, но я использовал ArcView версии 3.2. Программа весьма ревниво охраняется Ersi, и просто так из сети скачать ее вам не удастся. Идите на Горбушку. :)
1. Создайте новый проект. Создайте новый вид. Зайдите Вид/Добавить тему (у меня русифицированная версия), программа предложит выбрать шейп:
Вы увидите нечто подобное:
Значит, все получилось. Заходим Тема/Преобразовать в шейп-файл и пересохраняем в другой шейп.
Если вы хотите прорисовать озера, как я уже говорил выше, создайте новую тему при этом выберите
и рисуйте на здоровье. Потом так же сохраняете.
MapEdit - еще одна милая программа, с которой нам предстоит работать. Она легко доступна через интернет. Устанавливаем, запускаем, выбираем File/Import/ERSI Shape *.shp. Можно выбрать за раз все ваши шейпы, сколько их там, и программа по очереди для каждой запустит мастера в зависимости от типа импортируемого шейпа. Импорт состоит из нескольких этапов:
1. Выбираем символ, каким будут отображаться объекты вашего шейпа. Если это точечные объекты, будут предложены точечные символы, если это линии, будет предложен перечень линейных объектов, если это, например, озера, будут предложены площадные объекты:
2. Выбираем подписи объектов. Я обычно ничего не выбираю, чтоб потом не любоваться на нолики.
3. Выбираем систему координат, в которой представлен наш шейп:
Тут начинаются пре-вра-ще-ния. Как я смог догадаться, ума не приложу, наверное жена у меня - ничего себе. :) Товарищ MapEdit почему-то предлагает работать с системой координат Pulkovo 1942 года отлично от OziExplorer. А именно тут указывается не смещение относительно центрального меридиана и не центральный меридиан, а меридиан, от которого начинается отсчет, ну или что-то типа того. Способ задания преобразования указанный на скриншоте оказался успешным, хоть я не до конца понимаю внутреннее содержание фокуса. Кто знает разгадку, поделитесь с общественностью.
4. В последнем окне диалога надо выбрать некий уровень, о котором читайте ниже, и нажать ОК.
Потом переходите к следующему шейпу.
По мере загрузке шейпов, они будут у вас отображаться на карте и вы можете любоваться своими художествами, по крайней мере мой конечный результат меня очень обрадовал:
Теперь об уровнях. Зайдите File/Map properties. Там на закладке Levels мы видим:
Все шейпы вы загружали в уровень 0, это означает, что они будут отображаться при масштабе карты крупнее чем 1.2 км, то есть если в приемнике вы захотите уменьшить масштаб, все ваши художества пропадут, и вам придется наблюдать карту только с масштабом 500 метров и крупнее. MapEdit нам предлагал загружать шейпы только в один уровень с номером 0, хотя на самом деле в пустой карте их по умолчанию два. Дело в том, что в последний уровень нам объекты добавлять не предлагают. Поэтому на самом деле надо было сначала добавить еще уровень 1.2 - 3 км (а можно и еще несколько), и при загрузке шейпов выбрать все эти уровни, и карта у вас будет показываться при более мелких масштабах.
Но тут такая странная вещь, перед тем, как не загрузишь хоть один шейп, никак не удается добавлять новые уровни. Так что сначала загружаем любой не самый важный шейп, потом добавляем нужное кол-во уровней, потом загружаем оставшиеся шейпы в добавленые уровни. Такая вот бодяга. Кроме того, в списке уровней следите, чтобы строго соблюдалась последовательность по возрастающей, иначе не удастся экспортировать карту в формат IMG. Успешным оказался такой способ задания зумовых уровней:
Все наши старания сохраняем в польском текстовом формате и радуемся, потому что мучений осталось совсем не много.
Программка cGPSMapper тоже лихо распространяется через интернет, скачиваем, разворачиваем архив куда нравится.
Параметры ей можно передавать через командную строку, а можно сделать еще проще. В MapEdit нажимаем File/Export/cGPSMapper, выбираем путь к программе, нажимаем ок и ждем, пока она конвертирует. Потом рядом с cGPSMapper видим появившийся файл img.
Sendmap свободно распространяется в интернете.
Корпиуем IMG в папку с SendMаp, в командной строке пишем:
SendMap COM2 -s57600 00000000.IMG
Смысл этих параметров наверное ясен. Первое - это компорт к которому подключен у вас Гармин, второе - это скорость порта (можно поставить меньше), третье это имя загружаемого файла.
Смотрим, что получилось в Гармине. Собственно, что вы нарисовали, то у вас и получилось. :) Если результат радует, идем пить чай.
Не стесняйтесь делиться своими картами с другими, чтоб люди не делали дважды одну и ту же работу. :)
Карта, которую я векторизовывал
Точки привязки в R2V
Проект в R2V
Выгруженные и переработанные шейпы готовые для загрузки в MapEdit
Карта в польском формате
Карта в формате для загрузки в ГПС
Комментарии
На карте есть:
1. Гидрография - реки, озёра и ручьи
2. Лес - лес и редколесье
3. Техноген - дороги, просеки, тропы, населённые пункты
Объекты подписаны - для навигаторов поддерживающих кирилицу - подписи на русском, для прочих - на латинском (пример: протока Горная будет обозначена как pr.Gornaya).
Пишите: kalgin_serg сабака майл тчк ру.....
Заранее благодарен. Андрей.
С Новым годом!
Ищу 3D Analyst для ArcGIS 9.1
Поделитесь кто-нить!
В GPS Map Edit не удаётся преобразовать созданную карту из формата *.mp в формат *.imp для Garmin. В чём засада? Может из-за демо версии софта?
Есть у кого-нибудь векторная карта любого качества Тамбова, тамб. области, Воронежа, воронеж.области.
За ранее благодарен.
Вопрос: - Есть Garmin GPS-60CSx с залитыми картами регионов. После обновления версии прошивки с сайта изготовителя потеряна русификация. Прибор не понимает русской кодовой таблицы - кириллицы.
То, что прибор стал англоязычным не проблема. Беда в том, что тексты карт стали не читаемы. Одно из неприятных решений - после каждого апгрейда прошивки - гонять прибор по просторам России туда (сервис службы или продавец) и обратно, с целью заливки русификатора или уж точнее сказать обновления прошивки.. Или же в худшем случае, самому пройти весь путь самостоятельного изготовления нужных карт по методике, описанной в этой статье.
- Вторым и наилучшим решением видится замена на самой карте кириллицы на латиницу. По всему, с этой задачкой должен бы легко справиться редактор GPSMapEdit в связке с cGPSmapper.
Я попробовал. На официальных сайтах взял программы для пробы. Однако с этой затеей у меня ничего не получилось.
Может быть, все дело в лицензионных ключах? Хотя, насколько я понял, все эти программы дают краткосрочное право на их пробное использование.
Одним щелчком мышки из меню инструментов все буквы наименований меняются на латиницу. После этого программа требует сохранения в польском формате. Сохраняем. После, все это надо конвертировать в гарминовский формат IMG и тут начинается, откуда то появляются ошибки ( хотя и на рабочем файле то же самое) , потом несколько часов идет конвертация и в результате – ни- че- го.
Что не так в моих действиях?
Сами карты прибора на флешке и когда я получил нулевой результат то попробовал их вытащить с GPSDaemon в результате получил пару тысяч отдельных файликов. Попробовал перегонять их через GPSMapEdit и cGPSmapper я получал файл подобный исходному, но несколько потяжелевший. Однако этих файлов не один десяток а целых две тысячи, к тому же экспериментируя я попробовал вытащенные файлы закинуть обратно в прибор и тут ни чего не получилось дажеt с Img2GPS.
Пожалуйста, кто знает путь решения этой проблемы, помогите мне.
Спасибо.
-Получается, что эту кучу отдельных файлов надо собрать вместе и тогда получается, что снова возвращаемся к GPSMapEdit и все по кругу?
Чего скажете? Диск в наличии.
ВОПРОС: У меня есть польский формат "Карпат" я его постоянно уточняю,дополняю информацией после походов. Сеечас возникла необходимость расширить границы карты. Если я могу это сделать, то как? Я дорисовываю карту,но приконвертации в Гарминовский формат прибор не видет дополнения...
Работаем в программах TNT Mips,AutoCAD,Corel Draw, Adobe Illustrator, etc.Так же можем экспортировать в форматы Shapefile (for ArcView shapefile format), DLG, др. Если кто-то работает в TNTMips и будут вопросы - обрящайтесь. Очень удобна и проста для georeference. ))С уважением, Анастасия Воробьева
получаюкарту в исходном варианте ИМГ,без треков.МаpEdit не регистрирован,кто подскажет в чем причина?
Заранее спасибо!!!
ЗЫ Про ДНК знаю
Сделал небольшой кусочек карты, для теста. И сразу возникло несколько вопросов по отображению ее в навигаторе Etrex Vista HCx. Почему то не объектах типа "город" и "сельская застройка" (полигоны с номерами 0x2 и 0x3) нету надписей названий. Хотя на всех других типах полигонов они присуствуют. Может быть кто то знает с чем это может быть связано?
У кого нибудь есть карта Джамбульской облости на explay GPS PN-350 Зарание благодарен.
я сам рыбак, очень надо хорошие карты Псковской, Новгородской и Ленинградской областей. Заранее благодарен за помощь.
Имею img файл топо 6.00, не выходит его в Мапсоурсе поглядеть. Кто нибудь имеет опыт, как его в мапсоур отправить?
Страницы