?

Log in

No account? Create an account

Предыдущий пост | Следующий пост

Формат Custom Maps в настоящий момент не актуален, гораздо эффективнее использовать JNX. Достаточно крякнуть прошивку и сохранить карты в формат JNX с помощью программы MAPC2MAPC, описанной ниже.
Информация о форматах векторных и растровых карт Garmin.

Как известно, последние модели навигаторов Garmin (Oregon, Dakota, 62, Colorado, 78, Edge 800) поддерживают загрузку растровых карт в формате KMZ. Попробуем разобраться с тем, что это такое и с чем его едят.

Техническое описание

Контейнер KMZ - это zip-архив, содержащий в себе:

  1. Один или несколько фрагментов карты в формате JPEG.
  2. Файл KML, описывающий данную карту в формате XML:
    • Имена фрагментов;
    • Параллели/меридианы, на которых лежат стороны фрагментов;
    • Углы поворота фрагментов;
    • Приоритет отрисовки: указывает расположение растра относительно имеющихся векторных карт.

Таким образом, в каждом KMZ содержится карта, состоящая из нескольких фрагментов в формате JPEG и файла для навигатора с их описанием.

На данный момент, имеются следующие ограничения по загрузке растровых карт:

  • Допускается неограниченное количество контейнеров KMZ (то есть, отдельных карт).
  • Каждый фрагмент карты (JPEG) должен иметь размер не более 1 мегапикселя (т.е. 1024х1024, 512х2048 и т. п.) и вес не более 3 МБ. Более крупная карта должна быть разбита на мелкие.
  • Всего в приборе может быть загружено не более 100 фрагментов во всех контейнерах, причем общий их вес должен быть не более 32 МБ.
  • Названия всех файлов не могут включать кириллицу.

Забегая вперед, скажу, что все эти ограничения приводят к невозможности единовременно иметь в приборе более 12 стандартных листов Генштаба. Эти ограничения чисто софтовые, но существует и другой формат - JNX, - который позволяет загружать гораздо большее число карт с гораздо более широкими возможностями. Однако использование JNX требует несанкционированного вмешательства в прошивку прибора, поэтому оставим этот вопрос на другой раз.

Создание карт

Подготовка

Все способы загрузки растровых карт подразумевают наличие у вас как минимум исходной карты в формате рисунка. Где ее взять?

  1. Если у вас есть карты в формате "рисунок + .map" - все отлично.
  2. Если у вас есть карты в формате OZF2 - используйте OziMapTrans (бесплатный) для выковыривания карты типа "рисунок + .map".
  3. Если вы хотите загрузить в навигатор спутниковые снимки или например Яндекс-карты, используйте SAS Planet (бесплатный, русский). Работать с ним очень просто: выделяете нужную область нужной карты, сначала скачиваете ее в требуемом масштабе (если хотите наложить слой "гибрид", то скачиваете его отдельно), а потом склеиваете в огромный JPEG, не забыв поставить галочку на MAP. 
    Кстати, SAS Planet позволяет собирать сразу KMZ для Гармин, но на данный момент делает это криво - приходится вручную задавать, на сколько фрагментов бить картинку, плюс для каждого фрагмента создается отдельный KMZ, что глупо и неудобно.

Сложный путь

Этот способ загрузки предлагается самим Гармином и довольно подробно описан здесь. Вкратце:  

  1. Вы берете Фотошоп и сжимаете/рубите имеющуюся карту на кусочки размером не более 1000х1000 пикселей, сохраняете обязательно в JPEG.
  2. Накладываете каждый кусочек на Google Earth и руками (!!!) таскаете-растягиваете-вращаете его для максимально хорошего наложения (которого все равно не будет) на спутниковое фото. Полезно при этом сделать кусочек полупрозрачным. Если спутниковая фотка в этом месте отвратного качества - это ваши проблемы.
  3. Выбираете порядок отрисовки:
    • 0-49 - растровая карта будет показываться под векторной.
    • 50-100 - растровая карта будет показываться над векторной, но под вейпоинтами, дорогами, линиями высот и глубин.
    • Карта с более высоким порядком рисуется над картой с более низким порядком.
  4. Повторяете пп. 2-3 для всех кусочков. Стандартный лист Генштаба - это 9 кусочков, а спутниковая фотка - до 100 и более.
  5. Сохраняете все вместе в KMZ.

По моему опыту, если уменьшить лист ГШ так, чтобы кусочков было 4 штуки, то обработка листа занимает не более 40 минут. Мы фактически выполняем привязку вручную, игнорируя уже существующую, причем далеко не самым удобным способом.

Простой путь

Заключается в том, что вы используете специализированный софт для максимально упрощенного создания KMZ. Этот способ требует наличия привязки карты - файла MAP или аналогичного. Я пользуюсь программой MAPC2MAPC, о которой речь и пойдет ниже. Сразу оговорюсь, что программа платная (10 GBP), но неоплаченная версия полностью функциональна (только гадит на карту красными крестиками), плюс можно бесплатно скачать старые версии.

Итак, возможности этой программы включают в себя:

  • Обрезка карты прямоугольником;
  • Склеивание карт вместе;
  • Выбор размера фрагмента в пикселях;
  • Выбор уровня сжатия;
  • Выбор фрагментов, которые мы будем включать в результирующий KMZ;
  • Выбор уровня прорисовки;
  • Масштабирование карты;
  • Простейшая настройка яркости карты (эффективнее отредактировать изображение в Фотошопе по своему вкусу);
  • Сохранение как просто привязки с картинкой, так и KMZ или JNX.

В общем и целом, при раз сделанных настройках достаточно загрузить MAP, по вкусу обрезать карту, выбрать желаемые фрагменты (если вся карта нам не нужна) и запустить конвертацию. Здесь можно посмотреть видеоинструкцию по созданию KMZ в Mapc2mapc.

Совет: если установить размер фрагмента 1200х870 пикселей, то на лист Генштаба их уйдет не 9, а 8 - соответственно, листов в память влезет больше. Кроме того, ненужные части карты (крупные водные пространства) можно исключать из обработки - тем самым тоже экономится место.

Кроме того, если путь к карте включает в себя русские символы, то программа ругнется на это. Путь - черт с ним, а вот название карты должно быть написано латиницей, как и ссылка на картинку в MAP. Можно исправить это руками, а можно и с помощью той же OziMapTrans. 

Загрузка карт

Самый простой способ загрузки - вручную кинуть их в папку \Garmin\CustomMaps на приборе или на карте памяти. Но если при конвертировании были косяки, то прибор либо начнет ругаться при запуске, либо просто не покажет карту.

Поэтому более надежный способ - использовать  программу от Garmin Basecamp (бесплатная, русская). Она умеет очень многое, в частности, загружать и выгружать из прибора всю информацию, кроме фирменных карт. Достаточно импортировать созданный нами KMZ и отправить его на наш прибор или на карту памяти, дальше все сделается само.

Результат

В конечном итоге, лист Генштаба у нас преобразуется в файл KMZ, состоящий из 8 фрагментов и весящий 1,6 МБ (качество "4", т.е. 80%). Нетрудно подсчитать, что в память прибора у нас войдет 12 листов, а если убирать ненужные фрагменты, то и более. Этого достаточно, чтобы покрыть 500-метровками область минимум 50х50 км, а 2-километровками - 200х200 км. 

В то же самое время, спутниковая фотография максимального масштаба размером 5х10 км занимает почти всю доступную память (штук 80 фрагментов, порядка 25 МБ), так что если мы хотим загружать особо большие объемы растра, то придется использовать JNX. Информация по этому формату доступна на GPS-Forum.

Карты памяти с загруженными растровыми картами можно менять, поэтому если требуется иметь покрытие очень большой области (не влезающей в память), то будет удобно держать основные (векторные) карты в памяти прибора, а карточки с растровыми вставлять по мере необходимости, благо карточка MicroSD стоит всего от 170 руб. Только нельзя забывать, что разъем карт памяти у Гарминов достаточно хлипкий.

Вот результат всех наших действий: карта от Кандида, сконвертированная мною для закачки в Гармин. Файл можно скачать и открыть в Google Earth (прозрачность задается в настройках конвертации, в самом приборе карта нормальная). Сайт автора карты: bikeadventure.spb.ru.

Вот пример Генштаба 500м, лежащего под вектором, как он выглядит на экране GPSMap 62s.

 

А это спутниковая фотография максимального масштаба:

  

"Мутность" карт обусловлена исходными данными - естественно, при желании их можно пошарпить и сделать ярче/контрастнее.

Comments

( 26 комментария — Оставить комментарий )
alf132
Jan. 7th, 2011 07:59 pm (UTC)
"Каждый фрагмент карты (JPEG) должен иметь размер не более 1 мегапикселя (т.е. 1024х1024, 512х2048 и т." --
разве фрагмент 512х2048 не должен быть порезан на два, чтобы прибор его отображал?
voron_vp
Jan. 8th, 2011 05:49 am (UTC)
Нет. Площадь должна быть не более 1048576 пикселей, если вам так удобнее.
igor_kram
May. 6th, 2013 10:55 am (UTC)
Почему-то такого размеры файлы не грузятся в мой Garmin eTrex 20, видно только меньше размером примерно 500Х500. Готовлю карту в SAS.Планета.

В меню "Загрузить" появляется сообщение "Кол-во файлов 4Х3(12), размер 664Х327. М-б:13" При создании ф-ла kmz нужно разделить 4Х3 по горизонтали, вертикали?
bulawka
Aug. 13th, 2011 10:12 pm (UTC)
Скачал KMZ-файл с байкадвенчи (а он, я так понимаю, "идеальный") --
прибор его показывает в списке доступных карт,
но не показывает на экране ни при каком масштабе
и при полностью отключенных всех других картах. ЧЯДНТ?
В прибор заливал просто копированием, ибо Бейскамп мало того что не спросясь ставится на C,
так и вылетает на старте с ошибкой... Равно как и рекомендованный MAPC2MAPC....
(Свои карты конвертировал OziMapToKMZ, но они тоже не показываются.)
voron_vp
Aug. 14th, 2011 02:09 pm (UTC)
У меня он показывается на различных масштабах после простого копирования. Проблема где-то у тебя.
bulawka
Aug. 14th, 2011 02:26 pm (UTC)
OK, буду ковырять.
cv_florent
Sep. 13th, 2011 01:07 pm (UTC)
Нашел ваше сообщение гуглом, хотел понять насколько возможна навигация по растру на гармине. Прочитав статью и помучив mobile atlas creator (работает со всевозможными онлайн картами), с помощью которого делал карты для смартфона-андроида, заставил эту прогу делать файлы кмз с битыми по 1024х1024 фрагментами карты внутри (проверил распаковав зип) одним кликом (выделил фрагмент-сконвертировал). В настройках указал максимальный размер отдельной карты и все. Попробовать результат не на чем, только собираюсь купить совместимый прибор.
Возможно Вам пригодится эта информация.
alexrezn
Nov. 24th, 2011 08:27 am (UTC)
Скачал mobile atlas creator, попытался проделать то, что Вы написали. Очень странный интерфейс в программе, и полное отсутствие документации в Сети.
Не смог найти даже как файл открыть, ни jpg-шный, ни kmz. Одни пустые квадратики на экране рисует, и в меню нет ничего подобного.

Вы не могли бы написать подробно, как с её помощью из привязанного kmz с одним большим фрагментом сделать kmz с порезанными маленькими?
cv_florent
Nov. 24th, 2011 03:10 pm (UTC)
Я с тех пор обзавелся 62-м. Он кстати не ругается, если загружать кмз с нерезанными картами на флешку.
Что до МобАКа, он работает только с онлайн-картами и делает из них кмз, эдакая альтернатива бёрдзаю. Беда в том что в последних версиях убрали сервисы с космоснимками "по просьбе правообладателей". Ищите старую версию.
alexrezn
Nov. 25th, 2011 01:32 pm (UTC)
Мне-то надо имеющиеся у меня карты в jpg научиться загружать в Garmin 62s. Попробовал лист (3700 на 4500 пикс.) привязать в гугле и запихать kmz в навигатор, - гармин заявил, что размер слишком велик. То бишь резать надо. Ну, один то лист я порезал фотошопом, но хотел бы иметь технологию, как это быстро делать другими программами прямо в kmz, чтобы привязкой заниматься один раз на лист а не на каждый махонький кусочек.
Правда, так и не понял, как несколько таких кусочков засунуть в один файл kmz. В Google Earth сохранение местоположения метки (наложенного изображения) вызывается по правой клавише на имени элемента в левой колонке, где список меток. Возможности обьединить элементы перед создание kmz я не обнаружил. Неужели на 1 лист карты надо десяток файлов kmz закачивать в навигатор?
voron_vp
Nov. 25th, 2011 01:41 pm (UTC)
А вы вообще статью в верхней части этой страницы читали? :) Она как раз и посвящена тому, как быстро и с комфортом пихать карты в Custom Maps, не занимаясь секасом с ручной привязкой в Google Earth.

Если хотите, чтобы большая карта сразу пихалась в один файл, вам надо на JNX переходить, KMZ тут не поможет.
alexrezn
Nov. 25th, 2011 02:01 pm (UTC)
Читал, конечно. Я собственно на неё-то и вышел в своих поисках.

"существует и другой формат - JNX, - который позволяет загружать гораздо большее число карт с гораздо более широкими возможностями. Однако использование JNX требует несанкционированного вмешательства в прошивку прибора, поэтому оставим этот вопрос на другой раз."

Оставили. Прибор ломать не будем.


"Я пользуюсь программой MAPC2MAPC, о которой речь и пойдет ниже. Сразу оговорюсь, что программа платная (10 GBP), но неоплаченная версия полностью функциональна (только гадит на карту красными крестиками), плюс можно бесплатно скачать старые версии."

Может, отсюда и можно выбрать вариант - платный либо загаженный крестиками. Только я для начала попытался научиться пользоваться Google Earth:

"4.Повторяете пп. 2-3 для всех кусочков. Стандартный лист Генштаба - это 9 кусочков, а спутниковая фотка - до 100 и более.
5.Сохраняете все вместе в KMZ.
"

Ключевой вопрос про "все вместе". Я понял эту фразу как то, что расставив по базовому фото Гугла свои нарезанные фрагменты, я имею возможность заставить его сохранить сразу всё в ОДИН файл KMZ. Вопрос, как это сделать?
voron_vp
Nov. 25th, 2011 02:08 pm (UTC)
Там это как-то совершенно банально делается. Если не ошибаюсь, то надо в списке выделить нужные карты, ПКМ и выбрать в меню пункт сохранения.

Но опять же, привязывать фотку руками в Earth - это неблагодарный труд, граничащий с мазохизмом, т.к. с помощью спецсофта это делается быстрее и гораздо точнее.
alexrezn
Nov. 25th, 2011 02:43 pm (UTC)
"надо в списке выделить нужные карты, ПКМ и выбрать в меню пункт сохранения."

Я как раз и писал об этой проблеме. ПКМ относится не группе отмеченных птичками карт, а только к той, на которой стоит мышка.
А если мышку увести с названий вообше на пустое место, то меню по ПКМ не появляется.
voron_vp
Nov. 25th, 2011 02:50 pm (UTC)
Надо ПКМ на папке, в которой находятся ваши картинки, затем "Сохранить местоположение как".
alexrezn
Nov. 25th, 2011 03:06 pm (UTC)
Добавил папку, перенёс туда нужные обьекты, и сделал как сказано. Получилось! Спасибо! :)
alexrezn
Nov. 27th, 2011 12:33 pm (UTC)
Ещё просьба: вы не могли бы написать на уровне действий и элементов меню, как сконвертить в MAPC2MAPC файл KMZ, содержащий один большой привязанный фрагмент, в КМZ, содержащий порезанные кусочки с автоматически вычисленной привязкой?
voron_vp
Nov. 27th, 2011 04:46 pm (UTC)
Думаю, что никак. Надо изначально привязку картинки делать в Ozi, далее действовать обычным образом.
Гога Макаров
Feb. 7th, 2012 08:15 pm (UTC)
Простите, у Вас написано:
Каждый фрагмент карты (JPEG) должен иметь размер не более 1 мегапикселя (т.е. 1024х1024, 512х2048 и т. п.) и вес не более 3 МБ. Более крупная карта должна быть разбита на мелкие.

Можете еще раз объяснить - это именно фрагменты карты не должны быть более 3 МБ, или весь KMZ?
voron_vp
Feb. 8th, 2012 04:50 am (UTC)
Фрагменты карты. На KMZ там ограничение по числу фрагментов - написано, в общем.
loi_sei
Oct. 26th, 2012 09:26 am (UTC)
Файлы с форматом kmz загрузился, а вот формат img и другие особо не выходит...
igor_kram
May. 9th, 2013 06:58 pm (UTC)
Вопрос по созданию пользовательских карт kmz в Google Earth
Вопрос по созданию пользовательских карт kmz в Google Earth - возможно ли сохранение участка карты Google в kmz без наложения изображения? У меня так пока не получилось - сохраняются только точки и треки...
voron_vp
May. 12th, 2013 08:09 am (UTC)
Re: Вопрос по созданию пользовательских карт kmz в Google Earth
Ну, из той же SAS Планеты можно, вроде как. Правда, я так ни разу не делал. И вообще, нет смысла в пользовательских картах, когда можно ломануть прошивку и заливать JNX.
igor_kram
Jun. 4th, 2013 06:01 am (UTC)
не хочется ломать прошивку - возможно понадобиться для обновлений...

Получилось без проблем заливать карты через Global Mapper, предварительно привязав карту в Ози.
Андрей Помысов
Jul. 17th, 2013 07:18 pm (UTC)
Андрей
Чет я не пойму до конца как сделать карту для гармина нормально.
Есть около 10 карт гиф с привязкой (мап). Вопрос в том как это все перегнать в формат для гармина (дакота 20)!!
zartus
Jul. 26th, 2013 06:02 pm (UTC)
Re: Андрей
У меня легко получилось при помощи MAPS2MAPS в 2 движения.
( 26 комментария — Оставить комментарий )