Растровые карты в GPS приёмниках Garmin. Как загрузить растровую карту в GPS навигатор Создание растровых карт для garmin

Однажды фирма Гармин, под давлением прогресса и общественности, разрешила заливать в свои навигаторы карты, созданные на основе растровых изображений. Для чего усовершенствовала уже имеющийся формат, придумала новый, а ещё один позаимствовала у "корпорации добра" под названием Google. Если первый у нас ещё не получил столь широкого распространения и активно применяется, в основном, в приборах морской серии (да и то за пределами страны), то два других предназначены специально для "туристов" и их девайсов (выбор которых не так уж и мал).

Названия/расширения этих карт/файлов/контейнеров: KMZ и JNX

В нашу задачу входит научиться самостоятельно создавать такие карты и заливать их в навигаторы.


Про "что_да_как" в этом деле происходит меня попросили написать так же понятно, "как инструкцию по обуванию для негра, который впервые увидел ботинок"(ц).
Поэтому от этого текста не стоит ожидать лаконичной краткости и пунктуальной выверенности. Будет много вводных, будет много другой "воды" и прочих отступлений. Хоть писатель из меня никудышный, считаю важным в этом процессе не только научится соответствовать форме, но и понять содержание, кустарную логику процесса -- легче будет смещаться в стороны и искать свои пути в решении вопросов, -- потому что уйма всяких мелочей и все их не охватишь.

Первая часть уроков-инструкций посвящена формату KMZ.

Устроен он достаточно просто: берутся файлы изображений в формате JPEG (как правило -- это скан бумажной карты или космоснимок), к ним присоединяются файлы топографической привязки KML (Keyhole Markup Language - язык разметки Keyhole, которую и поглотила в своё время Google), а потом всё это оборачивается в разную служебную информацию, понятную прошивке/системе прибора. Естественно не обошлось без серьёзных ограничений. Что же мы имеем в результате:

Максимальное количество файлов -- не более 100 штук (в Montanе можно 500)
. размер одного файла должен быть не более 1 мегапикселя (1024x1024, 512x2048, etc) -- выходящие за рамки сжимаются принудительно
. вес одного файла не более 3 мегабайт (где-то на форуме читал про проблемы, если вес всех файлов превышал 32 мегабайта, но проверять это надо в каждом конкретном случае)
. файлы только JPEG и обязательно не сжатые методом "рrogressive"
. читаются только из директории \Garmin\CustomMaps

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

KMZ-карты мы будем делать c помощью программы -- а) она наша, родная, что меня, если честно, сильно греет; б) она бесплатная; в) с ней не возникает проблем с установкой, освоением и работой -- проще не бывает; г) она мегаресурсная -- тут тебе и космоснимки на любой вкус, тут и "бумага" начиная с Генштаба, ГГС и заканчивая историческими картами; д) и самое главное -- всё делается силами одной программы, с начала и до конца.

Если она ещё не пригрелась на вашем компе, то срочно идите на страницу загрузки , которая через десяток секунд должна начаться автоматически. Устанавливается, как не банально, путём простого перемещения скаченной папки с программой в C:\Program Files. Никаких установщиков. Запускается по даблклик на SASPlanet.exe

Клеить карту мы будем на примере космоснимков, поскольку есть небольшие нюансы. То есть с "бумагой" всё так же по сути, но с масштабами проще -- они или есть или их нет...

А пока, прежде чем мы продолжим, давайте разберёмся, из чего же мы будем клеить наши карты.
В SAS.Планете есть шкала Зума / Zoom: z1; z2 . . . z22, так называемые уровни масштабирования. Передвигаясь по этой шкале, каждый раз мы загружаем новую обойму фотографий, которые порезаны на куски -- тайлы. Чтобы посмотреть на их количество и размер, нужно перейти в меню "Вид"/ "Отражать границы изображений":

Но ни Яндекс, ни Гугл, ни кто либо другой, не заказывают спутниково-космических снимков различной степени детализации для каждого своего уровня. Это было бы слишком дорого, да и не совсем разумно. Поэтому другие масштабы формируются из снимков а) или путём 2-х кратного сжатия, когда 4 стандартных тайла/фотографии по 256х256 пикселей (512х512) превращаются в один тайл 256х256 более верхнего уровня; б) или наоборот (но реже), увеличивая тайл в 2 раз (качество от этого, к сожалению, не улучшается)

Для того места, на примере которого я делаю этот мануал, Яндекс использует всего 3 слоя реальных фотографий:

На z8, а остальные уровни z7; z6 . . . z1 формируются из него
. на z10 лежит метровый снимок, z9 сформирован из него
. на z19 лежит субметровый снимок (пиксель < 1 м 2), из которого слои z18; z17 . . . z11 сформированы тем же путём сжатия

Если мы возьмём бумажные карты (Генштаб, ГГС и проч.), то для них реальный уровень всегда один (одна карта -- один масштаб), а остальные уровни формируются по такому же принципу.

В картах KMZ верхнее и нижнее ограничения на уровень отображения задаётся стандартом и зависит... Нет... Давайте сначала разберёмся с терминологией, а то для тех, кто в первый раз с навигатором -- запутаться, как два пальца... А у меня задание, если вы помните.

(!!!) Когда в мануале здесь и далее будет заходить речь о верхнем уровне отображения, о верхенем уровне перехода и вообще о верхнем уровне -- то имеется ввиду маленький Зум (z1 -- самый маленький) и мелкий масштаб (1: 500 000 = в 1 см. -- 5 км. мельче, чем 1: 50 000 = в 1 см. -- 500 м.). Если вам будет легче усвоить, то представите себя поднимающимся на воздушном шаре -- чем выше вы над уровнем земли, тем меньше масштаб "карты-земли". Верхний уровень -- выше над землёй, понижаем уровень -- опускаемся на землю. Грамотно как с точки зрения логики, так и юзабилити интерфейса устроен сервис Яндекс.Карт -- кнопочка "+" у них находится внизу:

В Гугл-сервисах и в САС.Планете ползунок надо тянуть вверх -- повышать масштаб. Но понижать уровень, ага:) Почему так -- не знаю, но привыкнуть до сих пор не могу -- и всегда, где возможно, переставляю шкалу масштаба в горизонтальное положение. Но надеюсь понятно: уровень в плюс -- масштаб/зум в минус:))

Так вот, в картах KMZ верхнее и нижнее ограничения на уровень отображения задаётся стандартом и зависит от того, из которого склеена карта. Допустим мы взяли снимки уровня, которому соответствует масштаб километровки (z15). Когда мы зальём их в навигатор, то наша карта включится на масштабе 3 км. (верхний уровень), а выключится только на 20 метрах (нижний уровень). То бишь, при цифровом масштабировании реальное изображение будет уменьшаться только в 4 раза (что не плохо), а увеличиваться в 16 (жопа из пикселей).
Хотя мы помним, что при переходе на один уровень вниз (тем увеличиваем масштаб) количество тайлов при заданном размере увеличивается квадратично (километровка делится на четыре 500-метровки), уменьшая в 4 раза доступную площадь покрытия, но мне кажется, не стоит сильно гнаться за увеличением площади карты, а лучше выбирать уровни, соответствующие если уж не максимальному качеству снимка, то близким к нему. Просто потому, что экраны навигаторов не ретина-дисплеи смартфонов, несовершенство проще добить SD-картами, которые подешевели до каких-то неприличных цифр -- за 2 Gb просят всего 100 рублей...
Но как бы то ни было, картами уровня "z19" можно покрыть около 12 км. 2 площади, учетверяя её каждым щелчком уменьшения масштаба.

Как определить "правильную" картинку. Как ни странно, самый оперативный способ -- чисто визуальный. Правда нужна некоторая сноровка. Если подходить субъективно, то слой перед последним кажется самым резким, а следующий немного пиксельным, растянутым. Но обычно такой эффект создаёт "цифровой шум", присущий электрическим фотографиям -- а на самом деле он и есть наш "правильный".
Кроме того, при переходе на слой с отсутствующими тайлами можно увидеть "подсказки" (картинка справа), появляющиеся в разных местах карты. Это означает, что слой создан "программным" методом.

Второй способ -- более "научный". Картографические сервисы не отдают картинок ниже уровня, который у них есть и ползунок масштаба при этом замирает в своём крайнем значении (или не замирает, а просто не выводит картинку и честно пишет, что такой нет).

Чтобы отключить несуществующие уровни в SAS.Планете, нужно в меню "Вид" снять галочку напротив строчки "Брать карты из меньших масштабов" и отсутствующие тайлы выводиться не будут:

  1. Выбор сделан, возвращаемся в окно "Операции с выделенной областью".

  2. Оно сразу откроется на вкладке "Загрузить"

    Если вы уже определились с масштабом слоя, то нужно выполнить всего 3 пункта:

    5.1. Проверить тип карты.
    5.2. Удостовериться в правильности масштаба -- по умолчанию он будет указывать на зум, на котором делался полигон, и далеко не тот, что нужен.
    5.3. Снять галочку напротив пункта "Закрыть окно после старта" -- мы же доведём дело до конца? :) Как только всё проверим -- жмём "Начать".

    По окончании процесса закрываем окно загрузки и переходим на следующую вкладку...

  3. Но прежде не плохо бы убедиться, что он закончился с положительным результатом. Помочь в этом деле может "Карта заполнения слоя". В этом меню нужно указать три параметра:
  4. В подменю "Формировать для..." выбрать "Как на главной карте", или тут карту, которая нужна.
    . Выбрать масштаб (на картинке стоит z19).
    . Выбрать, что показывать -- существующие тайлы или отсутствующие. Если выбрать отсутствующие -- именно они изменят тон на более тёмный, если существующие (как на картинке) -- потемнеют они.

    Убедившись в равномерности заполнения слоя можно двигаться дальше...

    Но прежде, для прояснения тонкостей и во избежание возможных проблем, хочется процитировать маленький FAQ по загрузке, взятый на форуме программы:

    . При загрузке некоторых карт (обычно Google) сперва все идет нормально, а потом мне говорит что "Такого изображения нет на сервере", хотя при просмотрте в браузере этот регион прекрасно показывается. Что это?!

    ЭТО НЕ БАГ ПРОГРАММЫ SAS.Planet - это называется "бан на сервере", и им обычно грешит именно Google.
    После примерно 1000 загруженных тайлов сервер обычно банит по IP. в программе реализована некоторая защита от бана (путем задержки закачки тайлов), но 100% гарантии это не дает. Основной инструмент, которым пользователь может управлять баном - параметр Sleep в zmp-файле. Таким образом, если после 10 минут работы с программой больше ничего не загружается - поздравляем! Вас забанили, и единственный выход - ждать сутки (иногда меньше), больше ничего делать не надо. После этого времени всё встает на свои места, и можно опять начинать качать (до следующего бана). 100% гарантированного обхода бана в программе SAS.Planet пока что нет.

    . При загрузке карт мне говорит что "Такого изображения нет на сервере", хотя при просмотрте в браузере этот же регион прекрасно показывается. Что это?!

    ЭТО НЕ БАГ ПРОГРАММЫ SAS.Planet - это называется "на сервере сменили версию карт".
    Для решения этого вопроса Вам надо открыть файл ZMP соответствующей карты, найти в нем строку "DefURLBase=" (например, DefURLBase=http://mt.google.com/mt?v=w2p.99&hl=ru) и заменить в нем имеющиеся цифры версии (например, "w2p.99") на актуальную на настоящий момент версию на сервере. Сохранить изменения и рестартовать программу SAS.Planet.
    Автоматического отслеживания смены версий карт в программе SAS.Planet пока что нет.

    . При загрузке карт в браузере - я вижу новые районы и обновленные карты, а при закачке программой SAS.Planet - я этого не вижу, на той же карте!!! Как так может быть?

    ЭТО НЕ БАГ ПРОГРАММЫ SAS.Planet - это называется "на сервере используют более новую версию карт".
    Действия по изменению версии карт в программе SAS.Planet на актуальные - описаны пунктом выше.

    . Хочу всегда иметь самые свежие версии zmp!

    Если очень хочется - можно воспользоваться средствами Mercurial и командных файлов. Подробнее https://bitbucket.org/sas_team/sas.maps/wiki/Home

    . Мои карты очень медленно грузятся!!!

    Если у вас карты грузятся много медленнее чем в браузере на сайте - это может быть потому, что в файле xxxxx.zmp для соответствующей карты параметр Sleep (задержка перед загрузкой каждого последующего тайла) равен по умолчанию какому-нибудь положительному значению (например, Sleep=1000). Это сделано для попытки обойти бан данной карты. Можете уменьшить этот параметр, или вовсе поставить 0 (но тогда возрастет вероятность бана).

    . Мне постоянно сообщает "Отсутствует подключение к Интернет!", хотя подключение есть

    Проверьте Ваш файрвол (включая встроенный в Windows) на предмет блокирования соединений программы SAS.Planet, а также общие настройки Интернета в самой программе. Особенно это касается случаев с прокси-сервером.
    Программа SAS.Planet не использует каких-то специальных своих собственных режимов доступа к Интернету, и используются сугубо возможности Вашей операционной системы и окружения. Если у Вас работает интернет-браузер - то заработает и SAS.Planet. Если же что-то блокируется при работе SAS.Planet - проблема безусловно на Вашей стороне.

    . Почему я вижу детальные снимки нужного мне региона в программе Google.Земля, а при просмотре этого региона через SAS в карте Google - я их не вижу?

    ЭТО НЕ БАГ ПРОГРАММЫ SAS.Planet.
    Google.Земля - совершенно другой сервис, чем сервис Google.Карты (где SAS при своей работе использует именно сервис Google.Карты, но не Google.Земля). Общее у этих двух лишь одно - владелец (компания Google), все остальное - совершенно различное, включая логику работы, проекции карт и собственно серверы, откуда идет контент.
    Но есть и надежда: обычно обновления регионов в Google.Земля со временем перекочевывают и в Google.Карты, и тогда они могут стать доступны и в программе SAS.Planet. Обычно это занимает что-то в районе месяца-полутора. Иногда больше, иногда меньше. Иногда - никогда. Гарантии, возможности, точные сроки конкретных обновлений в обоих сервисах и степень их "взаимопроникновения" друг в друга известны только владельцу - Google, но никак не разработчикам программы SAS.Planet.


  5. Ну и финальная вкладка "Склеить":
  6. Начинаем заполнять поля:

    7.1. "Результатирующий формат" -- из выпадающего списка выбираем "KMZ for GARMIN".
    7.2. "Куда сохранять" -- выбираем папку и даём название файлу.
    7.3. Проверяем "Тип карты"
    7.4. Не забываем поправить "Масштаб"


    7.5. Поле "Наложить" и проекцию к нему оставляем пустыми.
    7.6. Так же не ставим никаких галочек напротив пунктов "Применять коррекцию изображений" и "Накладывать отображаемые метки" (если последние не нужны конечно). Если есть пункт "Сохранять PNG с прозрачностью" (v.121010) -- снимаем выделение -- здесь эти картинки точно не нужны.
    7.7. И в поле "Создавать файл привязки" тоже ничего не ставим -- привязка KML у нас внутри KMZ-файла.


    7.8. "Качество для JPEG и ECW" оставляем по умолчанию -- "95"
    7.9. Смотрим на строчку "Количество файлов", где видим такие значения "49х28(1372), размер: 12353х6785"
    Количество реально скаченных тайлов нас не интересуют, они не нашего размера. В задачу программы входит их сначала склеить, а потом порезать по KMZ-шаблону. Поэтому нам важны только последние значения.
    Мы помним, что размер нашего тайла не должен превышать 1024 пикселя по каждой из сторон. Именно на такие квадратики нам нужно разрезать карту размером 12353х6785 пикселей. Достигается это путём не сложных арифметических вычислений, где каждую цифру нужно поделить на 1024, а любой результат обязательно округлить до бо́льшего значения. Так получаем цифры 13 по горизонтали и 7 по вертикали (обычно я предпочитаю с калькулятором не возиться и для простоты делю на 1000)

    Всё, нажимаем "Поехали" и после окончания склейки...

    Идём проверять свои файлы:


В заданные параметры мы вроде уложились -- получился 91 файл, средний вес которого около четверти мегабайта. Прошу заметить, что SAS.Планета заботливо пронумеровала файлы по квадратикам-тайлам. Это пригодится на тот случай, если их количество перевалит через лимит и было бы легче их сортировать.

Ну что, осталось только залить их в прибор, путь до \Garmin\CustomMaps уже заказан:)

Здесь напишу поподробнее о том, как залить в навигатор гармин растровые карты формата JNX.
Недавно друзьям помогала перепрошивать Garmin Etrex 20, вот и запишу по свежей памяти.

Как перепрошить Garmin для работы с BirdsEye

Внимание! Помните, что по закону не допускается "осуществление без разрешения... действий, направленных на снятие ограничений использования произведений или объектов смежных прав"!
  1. Вам нужен навигатор с поддержкой технологии BirdsEye от Garmin , которая позволяет привязывать спутниковые снимки к карте. Изначально это платная штука. BE поддерживают практически все современные туристические навигаторы от гармин - Etrex 20 и 30, Oregon"ы, Dakota, GPSMap 62, 64, 78, Colorado и другие . Чтобы пользоваться этой технологией без ограничений, нужно перепрошить навигатор "правильной" пропатченной прошивкой.
  2. Подключаем навигатор по usb к компьютеру. Включаем, если сам не включился.
  3. Идем на офсайт и скачиваем утилиту, которая затем скачает последнюю версию прошивки для вашего прибора - WebUpdater .
  4. Запускаем утилиту. Она определяет прибор, скачивает прошивку. Провод не отключаем!
  5. На внутренней памяти в основной папке Garmin появляется файл под названием GUPDATE.GCD - это новая официальная прошивка
  6. Копируем файл на жесткий диск.
  7. Скачиваем программу-патчер FirmwarePatcher29, например, отсюда .
  8. Запускаем программу и патчим сохраненный на жестком диске файл с прошивкой. Вроде эта программа должна изменять номер прошивки на тот, который вы ей укажите, но у меня это сделать не получилось. Впрочем, не суть важно. Хотя номера "исходной" и "пропатченной" совпадают, у меня все работает. На двух аппаратах точно.
  9. На выходе получаем файл GUPDATE_Patched.GCD. Заменяем этим файлом файл прошивки на навигаторе.
  10. Удаляем из папки BirdsEye все файлы (не знаю, зачем это нужно, но в изначальной инструкции написано так).
  11. После этого отключаем навигатор от компьютера.
  12. Включаем навигатор и ждем, пока он обновит прошивку. Минут 5-7 - это нормально. Позаботьтесь, чтобы батарейки у прибора были свежие. В случае сбоев (да и вообще за установку такой прошивки) - вы лишаетесь гарантии от garmin...
  13. После обновления снова подключаем навигатор к компьютеру, чтобы залить карты.
  14. Копируем карты в папку Garmin/Birdseye, хоть на внутренней памяти, хоть на карте памяти. Если такого каталога нет - создать. Как сделать карты - читаем ниже.
  15. Отключаем навигатор от компа.
  16. Включаем навигатор. Идем в настройки карты, отключаем все лишние карты (типа Навитела и т.п.), оставляем только jnx. Если этого не сделать, они могут пересекаться/накладываться.
  17. Радуемся новым картам:)
  18. У меня пока что не получилось использовать разные типы карт jnx для одной местности, т.е. например, отдельно спутниковые, отдельно генштаб. В навигаторе включаются либо все карты jnx, либо ни одна. Это немного печалит.

Как сделать карты JNX в программе SAS Planet

  1. Последнюю версию САС Планеты скачиваете с официального сайта (программа бесплатная)
  2. Выбираете нужную карту в меню. Например: Генштаб >> Топокарта (Маршруты.ру) или Яндекс >> Спутник.
  3. Изучаете, на каких масштабах (обозначение в левом нижнем углу с буквой z, типа z12) какого качества и детализации карта. Иногда, при увеличении масштаба просто увеличивается картинка предыдущего слоя, а иногда появляется более детализированная карта.
  4. В случае, если вам нужна карта конкретного масштаба (например, километровка генштаб), то тут все легко.
    Выделяете нужную область, далее выбираете вкладку "Экспорт", формат "JNX растровая карта для Garmin".
    Во вкладке Карта выбираете нужный вам тип карты. В поле Масштаб нужно выставить тот, на котором карта наиболее качественно смотрится (см. п.3). В поле Шкала - масштаб на навигаторе , при котором данный слой будет появляться . Рекомендую сразу ставить 80 км. Такая "мономасштабная" карта на навигаторе будет выглядеть также, как и на компьютере, и при приближении/отдалении будет вести себя также.
    Жмем Начать - и все, карта готова.
    Важный нюанс! Сас Планет экспортирует карту только из уже загруженных тайтлов карты (т.е., кэша). Поэтому, перед экспортом, карту этого района в нужном масштабе (который z) надо загрузить в кэш. Делается это либо путем ее (карты) просмотра, повторюсь - в нужном масштабе. Либо выделяем - вкладка Загрузить - выбираем карту, масштаб, жмем Начать и загружаем в кэш. Потом делаем Экспорт.
  1. Если хочется, чтобы с изменением масштаба на навигаторе менялась и сама карта (двухкилометровка -> километровка -> пятисотметровка), это потребует чуть больше времени.
  2. Выбираем нужную карту, смотрим ее в разных масштабах. Масштабы, при котором сменяются карты, надо записать на бумажку.
    Например, в Топокарте Маршруты.ру смена такая: z9 - z11 - z12 (километровка атлас) - z13 (вроде 500-метровка генштаб) - z14 (250-метровка "новый генштаб"). Примечание: у разных районов может быть разный набор слоев, т.е. не везде вы найдете 250 или 500-метровку.
  3. Как и предыдущий раз, нужно загрузить в кэш нужные нам масштабы. Чем больше масштабов вы хотите загрузить и чем больше район - тем больше будет весить кэш и в конечном счете карта!
  4. Снова выделяем и выбираем Экспорт, формат JNX для Garmin.
    Все почти тоже самое, но теперь мы формируем слои нашей будущей карты из разных масштабов карты в Сас Планета. Суть: каждому масштабу на навигаторе (он указывается в поле "Шкала") будет соответствовать свой масштаб из программы.
    Здесь сложно однозначно дать подборку шкал-масштабов. Все зависит от наличия и качества карт. Для примера, при экспорте Топокарт в JNX областей ЦФО, я использую следующую "сетку":
    Топокарта - 11 - 80 км (т.е. при масштабе на навигаторе "80 км" и крупнее будет отображаться карта с 11 масштаба; вплоть до масштаба "2 км")
    Топокарта - 12 - 2 км (при переключении на масштаб в "2 км" будет отображен 12 масштаб)
    Топокарта - 13 - "800 м"
    Топокарта - 14 - "300 м"
  5. Карта готова к копированию в навигатор.

Когда фирма Гармин наконец-то решилась использовать растровые форматы, она и сама тут же захотела предложить своим клиентам взглянуть на Землю не только через плоскость топографических карт, но и с высоты птичьего полёта. Для чего запустила сервис BirdsEye , купив подписку в котором, вы сможете заливать в приборы не только схематические изображения местности, но и достижение нынешней цивилизации -- космоснимки.

Контейнер (формат/расширение файлов), в который упаковываются космические фотографии для заливки в прибор, она назвала JNX.

Хоть в сердце своём, как и у KMZ-файлов , всё так же остаётся растровое изображение с топографической привязкой, служебная оболочка тут более продвинутая:

Во-первых, появились уровни детализации (масштабирование). Числом 5.
. Во-вторых, если прибор может понять (и простить нам) только 100 (или 500 в приборах Montana) KMZ-файлов/тайлов, то JNX-контейнер позволяет разместить их по 50.000 на каждом уровне.
. В-третьих, Гармин разрешила заливать до 250-ти карт/контейнеров в устройства с прошивками, выпущенными с марта 2011 года и до 200 карт, работающих на более ранних прошивках. (!) Именно прошивках, не приборах. Прошивки можно обновить, если доступны.
. В-четвёртых, исходя из предыдущих количественных показателей, мы можем без существенных площадных потерь смело уменьшать размер и вес каждого тайла, от чего должна увеличиться скорость отображения/обновления и прокрутки картинки на экране.

Но есть и ложечка... дёгтя -- вся эта красота залочена и жестко привязана к устройству.

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


Теперь о том, как самодельные JNX-карты могут попасть в наши приборы.

Смысл этого вот в чём. Прежде чем оплатить подписку BirdsEye, фирма Гармин любезно предлагает его (сервис) протестировать. И создать одну тестовую JNX-карту с какой-то минимальной площадью покрытия. Задача патча заключается в том, чтобы после "инъекции от жадности" мозг навигатора навсегда забыл о проверке ограничивающих параметров, радуя нас всей широтой родных просторов.

Но перед тем, как приступить к процедуре, нужно посетить страничку на сайте a_whiter "a, автора патчера, и убедиться, что ваш прибор и прошивка пригодны для такого лечения. Если данные прибора совпадают с возможностями патчера, смело переходите на страницу загрузки актуальной версии (по ссылке на той же странице), скачивайте и распаковывайте в удобную для вас папку.

Тут пути-дорожки тех, у кого приборы с последней версией прошивки и у кого прошивка была старой, ненадолго расходятся. Последние могут сразу перейти к . А первые продолжают подготовку прибора.

Дело в том, что пропатченная прошивка -- это не какая-то новая и совершенно отличная от официальной программа, а всё та же версия той же гарминовской прошивки, которой лишь в маленькой толике был подправлен код. А прибор, при условии, что установленная прошивка не глючная и работает без ошибок, обновляться на ту же самую версию откажется, оставшись "при своих". Поэтому, прежде чем установить новую прошивку, нам нужно downgrad-ить установленную.

Как работает WebUpdater... Эта утилитка по своей сути является обычной файловой качалкой. Её роль сводится к следующему -- сначала она ищет в приборе какой-то служебный файл, из которого считывает HWID и версию прошивки. Затем обращается к своей базе данных, находит последнюю версию для этого HWID-а и заливает его во всё ту же папку? Х:\Garmin\. Конец. Дальше прибор всё делает сам, запуская установку при перезагрузке.

Нам же нужно проделать это вручную, только задачей является найти не последнюю, а более раннюю версию.
За точку отсчёта можно взять Wikispaces: Dakota , eTrex 20/30 , Montana , GPSMAP , Oregon 6xx , Oregon x50 (450 and 550) , Oregon 200, 300, 400i, 400c, 400t , Colorado .

Если там найти не удастся, ещё неплохой каталог есть на этом сайте, где по HWID тоже можно попробовать поискать свой вариант. Для этого на приборе, в папке? Х:\Garmin\ нужно найти файл GarminDevice.xml и открыть его любым текстовым редактором (блокнот подойдёт). Практически в первых строках кода найти примерно такую строчку: 006-B0661 -00370 .

Это означает, что HWID прибора "0661" с версией прошивки "370" (при этом не обольщайтесь, обмануть прибор, как раньше бывало, просто поправив версюю в коде на более раннюю (360; 350 … 320), больше не получится -- они стали чуть умнее). Потом найти в таблице свою версию, загрузить на компьютер и разархивировать, если файл упакован в архив.

ЗЫ: Может так случится... А скорее всего так и случится -- навигатор перестанет видеть карты, которые в него установлены. Даже векторные, даже базовые, обзорные... Так вот -- не пугайтесь. От такого "лечения электричеством" у кого хочешь мозги поедут, даже если они электронные. Девайс всего лишь потерял связь с реальностью и не может понять кто он где он. Отнеситесь с понимание и помогите ему -- положите на подоконник, а лучше вынесите на балкон, -- ему надо пообщаться со спутниками. Как только они всё ему расскажут и сообщат последние новости, он станет ещё лучше прежнего:)

После описания Гарминовской инструкции по созданию растровых карт возникает немало вопросов, а именно:
-Как закачать спутниковые карты, чтоб в них отсутствовали служебные символы и рисунки "Планеты Земля"
-Как разбить карты на фрагменты размером 1024*1024 максимум каждый, а также контролировать максимальное количество этих файлов
-Как автоматизировать процесс создания фрагментов и их привязки в программе "Планета Земля"

Естественно это вопросы появились в попытках ответить людям на возникающие вопросы, очередная такая работа заставила задуматься и попробовать написать по свежим следам воспоминаний небольшую инструкцию....

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

1. Закачка картинок и создание kmz файла
Есть такая совершенно бесплатная програмка, называется SASPlanet. Находятся она тут http://sasgis.org/download/ и скачать ее можно там-же.
Прелесть данной програмки в том, что она позволяет скачивать снимки не только Google карт, но и с кучи разных других источников. Причем скачивает их с возможностью задать на сколько фрагментов делить, и создавать ли дополнительные файлы привязки!!! Вот эти картинки совершенно лишены лишней информации, они закачиваются пакетом, т.е. сразу можно качать приличные объемы, можно задать уровень детализации, сгенерируются базовые файлы привязки, которыми можем воспользоваться, а главное может сразу создать kmz файл для навигатора!!!

Посему, качаем програмку, а точнее архив и распаковываем его на своем компьютере. Запускаем SASPlanet и первое что необходимо сделать, это выставить параметр в меню "Источник\Интернет и кеш", т.е. чтобы карты брались и с интернета, если они отсутствуют, и из кеша, если они уже были закачаны на компьютер.

Далее следует поиграть с програмкой, т.е. посмотреть карты, какие они с того или иного источника (меняя меню "Карты") дабы определиться что Вам больше всего подходит. Во многом работа с программой схожа с Планетой Земля.

Вот если вы определились с какой картой Вам интереснее и какой именно участок Вам нужен в навигатор, то тогда:

Поувеличивайте карту, чтобы понять какой уровень детализации вам необходим, уровень детализации отображается в нижнем правом углу программы, на данной картинке, как видно, он составляет 5x, запомнили это число.

Отмечаем выбранный участок, для этого выбираем меню выделения прямоугольной области, карту при этом можно увеличить или уменьшить, главное чтоб отмечать было удобно.

Выделяем на карте нужную нам область

Появится вот такое меню


Выставляем тип карты на тот тип который вам понравился.
Масштаб ставим на число, которое мы запомнили как уровень детализации.
Проверьте что пункт "Пытаться загружать отсутствующие тайлы" отмечен галочкой.

Теперь нам немного надо подумать. Мы видим, что ниже под типом карты, программа нам дала разрешение картинки, в данном примере оно составляет 14336x12800 точек. У нас существуют в навигаторе следующие ограничения: размер файла может быть не больше 1024x1024 (естественно меньше можно, к примеру 900x200), общее количество таких файлов может быть не более 100.
Т.е. в данном конкретном случае, мы никоим образом не влазим в действующие ограничения. Тут два выхода, либо пометить меньшую территорию, либо выбрать более слабый уровень детализации. Если я сейчас установлю детализацию на один уровень меньше, т.е. 13, то получу разрешение картинки равное 7168x6400.
Вот 7168x6400 всполне подходят, ибо если мы картинку поделим например по горизонтали на 8 частей, а по вертикали на 7, то получим 896x915, что вполне влазиит в ограничение по размеру файлов, а количество файлов получится 7*8=56, что удовлетворяет условию, когда количество файлов должно быть не более 100.

Итак мы определились с размерами, масштабами и готовы дать команду загрузки из интернета всех необходимых снимков! Нажимаем кнопку "Начать"
Потребуется определенное время, иногда немалое, пока программа загрузит все данные с сервиса карт на локальный диск.

Появится вот такое меню, после окончания загрузки просто нажмите "Выход"

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


и, таким образом, мы вернулись к знакомому нам диалоговому меню

В этом диалоге выбираем закладку "Склеить"


Выберите результирующий формат как показано, т.е. создание "Kmz для Garmin".
Укажите путь сохранения и имя файла.
Выставьте правильный масштаб.

Поехали! Нажимаем "Начать" и програмка создаст kmz файл, внутри которого будут содержаться картинки карт, разбитые на части!!!

Все!!! То, что нам нужно было от программы SASPlanet мы получили, осталось лишь скопировать файл карт в навигатор (каталог /Garmin/CustomMaps/).
Единственно отмечу, не стоит давать kmz файлу имя русскими буквами, такой файл навигатор просто не увидит.

2. Редактирование карты
Есть ситуации, когда необходимо подправить картинки карт. У меня, например, получилась карта, дома которая выглядела нормально, а реально на водоеме ее читаемость оставляла желать лучшего, и в следующий раз я просто обрисовал сушу коричневым, а воду голубым, тем самым увеличив контрастность между объектами и повысив читаемость. Подобных причин может быть множество. Поэтому приведу руководство, как-же поредактировать готовый kmz файл.

Kmz файл представяет собой обычный Zip архив. Нужно настроить оболочку Windows, чтобы она позволяла видеть и изменять расширения файлов. Меняем расширение нашего файла на zip, и тогда файл можно открыть как архив и вытащить из него все содержимое.

Разархивируем наш файл в пустой каталог. Мы получим в нем:
doc.kml - текстовый XML файл привязок картинок к координатам.
files - каталог, в котором содержатся все картинки в формате jpg

Вот теперь берем и редактируем любые картинки в каталоге files. Главное не изменять имена файлов и не изменить размер картинок.
Для проверки как это будит выглядеть, можно программой Планета Земля открыть файл doc.kml, а он загрузит картинки. Как только, мы убедимся, что все нужные изменения сделаны, достаточно запаковать в zip архив файл doc.kml и каталог files с содержимым, после чего изменить расширение архива с zip на kmz.

Являясь около полугода владельцем устройства "Garmin" конечно же, я с любопытством начал изучение сего девайса. И по пути, столкнулся с тем, что ответов и инструкций, понятных для того, кто впервые держит навигатор в руках не так уж и много. Изучив N-ное количество сайтов и форумов, я постарался собрать здесь единую "инструкцию по применению". Список источников информации приведен в конце статьи.

    Краткое содержание:
  • Создание/склейка и обрезка растровых карт в формате KMZ с помощью Global Mapper. Для тех, кто боится потерять гарантию.
  • Создание карт в формате KMZ с помощью SASPlanet. Для тех, кто боится потерять гарантию.
  • Создание многослойных карт в формате JNX с помощью SASPlanet. Для пропатченных устройств.
  • Создание и добавление карт в кэш SASPlanet, если таковые отсутствуют в программе, но есть где-либо.
  • Модификация прошивки устройства, для возможности бесплатной работы с картами JNX.

Склейка и обрезка растровых карт в формате KMZ с помощью Global Mapper

В открывшемся окне, выбираем папку, куда были скачаны карты и файлы привязки, выбираем формат "Ozi Explorer Map files (map.)". Выделяем файлы привязки и нажимаем открыть.


В результате получается вот такая, склеенная из нескольких листов карта. Для примера сшиваю 250-метровую карту ГГЦ. Теперь нужно удалить/обрезать поля с ненужными цифрами и координатами. Для этого во вкладке "Инструменты" выбираем "Центр управления". Откроется окно, в котором нужно выделить все листы карты. Далее нажимаем "Настройки".

Далее нужно сохранить получившуюся карту в формат KMZ. Для этого нажимаем “Файл/Экспорт/Экспорт растров”. В окне экспорта выбираем KML/KMZ. Далее в появившемся окне на вкладке “KML/KMZ настройки” выбираем настройки экспорта (В источнике автор предлагает выбрать “PNG” и размер 512х512 для более быстрой прогрузки карты в устройстве. Тут необходимо учитывать тот факт, что у приборов Garmin существует ограничение по фрагментам – изображениям, на которые разбивается карта при конвертации. В большинстве это 100 шт. К тому же мой Dakota, почему то отказывается видеть формат ”PNG”, поэтому я выбирал “JPG” и в окнах справа и снизу игрался с качеством и разрешением.)

Пункт 4 нужен для тех, у кого на готовой карте при просмотре, на месте обрезанных полей появляется кайма. Во вкладке “Экспорт границ” ставим точку в пункте “Широта/Долгота, град.” Готово! Получившийся файл можно открыть в программе Google Earth и посмотреть как он ложится на рельеф.

Создание карт в формате KMZ с помощью программы SASPlanet

Скачать программу можно с официального сайта, установка не требуется. Клеить карту для примера, буду на основе топо-карт генштаба с сайта: маршруты.ру. Запускаем программу. Перемещаемся в нужное нам на карте место. Например: Слюдянку. Далее выбираем тип отображения: на выбор предоставлены всевозможные сервисы с картами и спутниковыми снимкам.

Приступим к созданию полигона – выделению области (которая и будет являться вашей картой). Нажимаем ”Операции с выделенной областью” и выбираем подходящий вариант, например “Полигональная область”. Затем с помощью мышки выбираем любой интересующий нас участок. Мини-панель справа от выделенной области нужна для управления выделением. Закончив выделение, нажимаем галочку на мини-панели. Появляется окно “Операции с выделенной областью”. Не будем пока ничего в нём заполнять, а отодвинем в сторонку, чтобы не мешалось. Хотя можно и просто закрыть. Оно снова откроется по сочетанию клавиш "Ctrl+B" или выбором пункта "Предыдущее выделение" в том же меню.

Но, ни Яндекс, ни Гугл, ни кто либо другой, не заказывают спутниково-космических снимков различной степени детализации для каждого своего уровня. Это было бы слишком дорого, да и не совсем разумно. Поэтому другие масштабы формируются из снимков

  • Или путём 2-х кратного сжатия, когда 4 стандартных тайла/фотографии по 256х256 пикселей (512х512) превращаются в один тайл 256х256 более верхнего уровня
  • Или наоборот (но реже), увеличивая тайл в 2 раз (качество от этого, к сожалению, не улучшается)
Если мы возьмём бумажные карты (Генштаб, ГГЦ и проч.), то для них реальный уровень всегда один (одна карта – один масштаб), а остальные уровни формируются по такому же принципу.

Когда в мануале будет заходить речь о верхнем уровне отображения, о верхенем уровне перехода и вообще о верхнем уровне, то имеется ввиду маленький Зум (z1 – самый маленький) и мелкий масштаб (1: 500 000 = в 1 см. – 5 км. мельче, чем 1: 50 000 = в 1 см. – 500 м.). Если вам будет легче усвоить, то представите себя поднимающимся на воздушном шаре – чем выше вы над уровнем земли, тем меньше масштаб "карты-земли". Верхний уровень – выше над землёй, понижаем уровень – опускаемся на землю. Грамотно как с точки зрения логики, так и юзабилити интерфейса устроен сервис Яндекс Карт – кнопочка "+" у них находится вниз.

В Google-сервисах и в SASPlanet ползунок надо тянуть вверх – повышать масштаб. Но понижать уровень. Так вот, в картах KMZ верхнее и нижнее ограничения на уровень отображения задаётся стандартом и зависит от того, из которого склеена карта. Допустим мы взяли снимки уровня, которому соответствует масштаб километровки (z15). Когда мы зальём их в навигатор, то наша карта включится на масштабе 3 км (верхний уровень), а выключится только на 20 метрах (нижний уровень). То есть, при цифровом масштабировании реальное изображение будет уменьшаться только в 4 раза (что не плохо), а увеличиваться в 16 (жопа из пикселей). Хотя мы помним, что при переходе на один уровень вниз (тем увеличиваем масштаб) количество тайлов при заданном размере увеличивается квадратично (километровка делится на четыре 500-метровки), уменьшая в 4 раза доступную площадь покрытия, но мне кажется, не стоит сильно гнаться за увеличением площади карты, а лучше выбирать уровни, соответствующие если уж не максимальному качеству снимка, то близким к нему. Просто потому, что экраны навигаторов не ретина-дисплеи смартфонов, несовершенство проще добить SD-картами, которые подешевели до каких-то неприличных цифр – за 2 Gb просят всего 100 рублей... Но как бы то ни было, картами уровня "z19" можно покрыть около 12 кв.км площади, учетверяя её каждым щелчком уменьшения масштаба.

Как определить "правильную" картинку? Как ни странно, самый оперативный способ – чисто визуальный. Правда нужна некоторая сноровка. Если подходить субъективно, то слой перед последним кажется самым резким, а следующий немного пиксельным, растянутым. Но обычно такой эффект создаёт "цифровой шум", присущий электрическим фотографиям – а на самом деле он и есть наш "правильный".

Чтобы отключить несуществующие уровни в SASPlanet, нужно в меню "Вид" снять галочку напротив строчки "Брать карты из меньших масштабов" и отсутствующие тайлы выводиться не будут.

Возвращаемся в окно "Операции с выделенной областью". Оно сразу откроется на вкладке "Загрузить". Во вкладке “Загрузить” в выпадающем меню выбираем наш источник карты. (Не обязательно тот же, в котором, мы просматриваем карту в программе.) Выбираем необходимый зум в колонке справа 1-24. Нажимаем “Начать”.

По окончании процесса закрываем окно загрузки и переходим на вкладку “Склеить”. Но прежде не плохо бы убедиться, что он закончился с положительным результатом. Помочь в этом деле может "Карта заполнения слоя". В этом меню нужно указать три параметра: В подменю "Формировать для..." выбрать "Как на главной карте", или ту карту, которая нужна. Выбрать масштаб. Выбрать, что показывать – существующие тайлы или отсутствующие. Если выбрать отсутствующие – именно они изменят тон на более тёмный, если существующие (как на картинке) – потемнеют они.

Убедившись в равномерности заполнения слоя можно двигаться дальше. Во вкладке “Склеить” выбираем: "Результирующий формат" – выбираем "KMZ for GARMIN". "Куда сохранять" – выбираем папку и даём название файлу. Проверяем "Тип карты". Не забываем поправить "Масштаб". Поле "Наложить" и проекцию к нему оставляем пустыми. Так же не ставим никаких галочек напротив пунктов "Применять коррекцию изображений" и "Накладывать отображаемые метки" (если последние не нужны конечно). Если есть пункт "Сохранять PNG с прозрачностью" (v.121010) – снимаем выделение – здесь эти картинки точно не нужны.

И в поле "Создавать файл привязки" тоже ничего не ставим – привязка KML у нас внутри KMZ-файла. "Качество для JPEG и ECW" оставляем по умолчанию – "95". Смотрим на строчку "Количество файлов", где видим такие значения "49х28(1372), размер: 12353х6785".

Количество реально скаченных тайлов нас не интересуют, они не нашего размера. В задачу программы входит их сначала склеить, а потом порезать по KMZ-шаблону. Поэтому нам важны только последние значения.

Мы помним, что размер нашего тайла не должен превышать 1024 пикселя по каждой из сторон. Именно на такие квадратики нам нужно разрезать карту. Достигается это путём не сложных арифметических вычислений, где каждую цифру нужно поделить на 1024, а любой результат обязательно округлить до бо́льшего значения. Так получаем цифры хх по горизонтали и хх по вертикали.

Нажимаем “Начать” и ждём окончания процесса. Готово!

Создание многослойных карт в формате JNX с помощью SASPlanet

Кратко о формате JNX
Файлы в формате JNX используются в устройствах Garmin для показа спутниковых карт, доступных через подписку “BirdsEye”. В навигаторах эти файлы располагаются в папке “Garmin\BirdsEye” на внутреннем диске или SD-карточке. JNX – так называемый “тайловый” формат, то есть большое растровое изображение в карте разбито на меньшие прямоугольные части для ускорения показа навигатором. Поддержка карт JNX имеется в следующих устройствах: Alpha 100, Astro 320, Colorado 300/400, Dakota 10/20, Edge 800, Etrex 20/30, GPSMAP 62/78, Montana 600/650, Oregon 200/300/400/450/550, Rino 610/650/655.

Существенным ограничением формата JNX является жесткая привязка карт к устройству.

Результаты исследования
Формат JNX почти полностью исследован (за исключением части блока служебных данных загрузчика, которой можно вполне пренебречь при создании собственных карт). Разработан набор утилит как для преобразования растровых карт в формат JNX, так и для обратной конвертации.

Хотя файлы в формате JNX содержат код привязки к устройству, известны два способа использования собственных карт JNX в навигаторах Garmin.

Первый способ:
Можно пропатчить прошивку устройства таким образом, чтобы снять ограничение на количество показываемых демонстрационных карт и их площадь.

Второй способ:
Если у вас оформлена подписка “BirdsEye”, можно воспользоваться “BaseCamp” для активации собственных карт JNX. Для этого достаточно сделать карту одним из конвертеров, загрузить полученный файл JNX в устройство, затем запустить “BaseCamp” и скопировать карту с устройства в коллекцию. После этого карту можно будет послать обратно на устройство, при этом “BaseCamp” активирует карту и привяжет её к устройству. Этот метод сработает только в том случае, если устройство связано с подпиской “BirdsEye”.

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

    Файл формата JNX можно условно разделить на 7 частей:
  • 1. Заголовок.
  • 2. Таблица с описанием уровней.
  • 3. Служебная информация загрузчика карт.
  • 4. Таблица с описанием тайлов.
  • 5. Сигнатура.
  • 6. Набор тайлов.
  • 7. Метка конца файла.

Запускаем программу и находим нужный регион. Далеко ходить не будем, возьмём ту же Слюдянку. Если для карт KMZ нам нужно было выбрать один уровень и один источник для него, то сейчас можно пофантазировать(формат JNX позволяет использовать до 5-ти разных слоёв в одной карте). Но перед этим не плохо бы проверить, кто что предлагает на данную территорию. Побродив по меню Карт, я выбрал три уровня. На нижнем (z18) у нас будут лежать всё Google спутник, в серединке "бумажный" ГГЦ на 250 м (z16), чтобы не заблудиться, а в самом верху (z14) разместим Генштаб на 2км.

Далее как в предыдущем пункте – создание карт в формате KMZ с помощью SASPlanet. (Выделяем нужную область, и выкачиваем карту,из нужных нам источников с “правильным” зумом (т.е. в моём примере скачиваем Google спутник, когда загрузка закончится в том же окне выбираем след. источник – 250метровые ГГЦ с Маршруты.ру, выкачиваем, повторяем процедуру для 2км Генштаба). Не забыв потом убедиться с помощью "Карты заполнения слоя", что все выбранные тайлы на месте. После этого уже начинается область неизведанного – вкладка "Экспорт" в окне “Операции с выделенной областью”.

Но перед тем, как наполнять её значениями, надо немножечко разобраться – как, чем и почему. Представьте, что перед вами лежит стопка карт одной и той же местности. Чтобы рассмотреть более детально какой-то квадрат, вы просто откладываете в сторону лист с мелким масштабом и переходите к следующему. Сначала 10-ти километровку, потом 5-ти, потом 2, потом 1, потом 500 метров... В навигаторе же детализация может происходит более плавно, потому что градация масштабов более расширенная. И увеличивая масштаб, какое-то время вы всё равно будете рассматривать всё ту же карту.

В родных JNX-картах, полученные по подписке BirdsEye, содержатся уровни со значениями масштабов, заданных некими целыми числами разной величины. Что они означают на самом деле – науке до сих пор неизвестно и остаётся тайной гарминовских программистов. Но умные люди на их основе придумали свою, расширенную последовательность, которая и используется во всех приличных программах, способных к компиляции JNX-файлов. В SASPlanet эта шкала цифр переведена в удобный нам метрово-километровый формат.

Всё было бы просто, если бы мы делали карты по шаблону BirdsEye и масштабы у нас шли последовательно, один за другим. Программа бы сама подставляла нужные значения и незачем было бы париться. Только у нас всё может быть несколько сложнее, если не сказать – навороченнее.

Давайте рассмотрим простую ситуацию, когда в нашей коллекции карт не хватает одного листа. К примеру, куда-то затерялся лист 500-метровки, а в наличии только километровка и 250 метров. На бумаге, как уже говорилось, сделать это просто – отложим один лист и сразу перейдём на другой. Навигатору же придётся проделать более длинный путь – пройти уровни 800 м., 500 м. и 300 метров. А нашей задачей, при создании подобной карты, является указать ему, на каком уровне "выключить" одну и включить другую.

Казалось бы решением, лежащим на поверхности, является – всё взять и поделить. Поровну. = 500. Но людям, имеющим дело с фотографиями, не менее логичной показалась бы цифра 800 – всё лучше смотреть на уменьшенную в 4 раза 250-ти метровку, чем на пиксельную километровку. Только правильная цифра – 300. А чтобы понять, почему так, рассмотрим один, совсем не гипотетический случай.

Предположим, что в ваш навигатор залиты карты двух соседних квадратов. Одну делали вы и сделали её двухуровневой. Потому что куда-то затеряли свой 500-метровый лист, а "точкой перехода" назначили уровень в 500 метров. А на другой квадрат вам дал друг (или скачали из интернета) и в ней наличиствуют все 3 уровня с правильными переходами: на 800 м. для 500-метровго листа и 300 метров для 250-ти метрового.

Когда вы окажетесь на стыке этих квадратов, а их тайлы будут одновременно выводиться на экран, произойдёт вот что:

  • при значениях шкал масштаба навигатора от 2 км до 1,2 км будут выводиться километровые карты
  • при значении 800 м карта друга переключится на 500-метровку, а на вашей останется километровка
  • при значении 500 м карта друга останется на 500-метровке, а ваша переключится на 250-метровку
  • при значении 300 м карта друга перключится на 250-метровку, а ваша... а ваша исчезнет навсегда вплоть до 5-ти метровой шкалы

Честно скажу – я не знаю, баг это или фича, но если для карт одного уровня (в нашем случае 250-ти метровка) установить разные значения для верхнего уровня отображения, назовём её "точкой перехода", то карты с большими значениями перестанут отображаться. При условии, что они одновременно видны на экране конечно. В одной карте одним файлом такое сделать, разумеется, невозможно. Но для двух соседних карт – запросто.

Поэтому правило такое – если вы стремитесь к совместимости не только всех своих карт, но и с картами друзей-картосоздателей, при наличии пропущенных масштабов всегда устанавливайте верхний уровень отображения на значениях, следующими за масштабом имеющейся карты:

  • для 250-ти метровки это будет 300 м
  • для 500-метровки – 800 м
  • для километровки – 1,2 км
  • для 2-х километровки – 3 км
  • для 5-ти километровки – 8 км
  • для 10-ти – 12 км

Но опять же... Правила есть. Но они настолько субъективны... В одних сообществах они одни, в других могут быть совершенно другие – я про них для порядку написал. Вы же делайте, как вам удобно и считаете правильным. Это ваши карты и вам с ними жить. И нафига тогда мучаться? Попробуйте наделать разных вариантов вокруг своего дома, и прогуливаясь с собачкой (ну или за пивом там) протестируйте – как и чего. Это сложно описать правилами на самом-то деле – у каждого своё мироощущение. Если бы мне была важна в этой сборке бумажная 250-ти метровка, а на верхнем уровне только спутниковая 2-километровка, я бы плюнул на правила и поставил верхнюю точку перехода для неё на 1,2 км. – для пущего обзора окрестностей.

Так что если вдруг вы попадёте в ситуацию, когда часть карты на каких-то значениях перестала выводится на экран, при этом она точно там была и работала, то выходом из такой ситуации является только временное отключение какой-то одной, пока не нужной.

Это что касается значений верхнего уровня. Теперь перейдём к нижнему. С ним просто – его нет. Карта любого масштаба, если она лежит на самом нижнем уровне, по идее будет отображаться вплоть до предельных приземлённых значений (в Garmin – 5 м.) Для космоснимков по подписке BirdsEye это может и нормально, но если у нас на нижнем уровне окажется хотя бы километровка, то при приблежении в 5 метров экран отобразит даже не пиксель отсканированной карты, а его маленькую часть. Для таких случаев тоже придумано решение, но оно не совсем тривиальное. (В картах JNX имеется только верхнее ограничение на уровни приближения, при которых показывается тот или иной уровень карты. Скажем, если в заголовке уровня JNX прописано значение масштаба 76437, то тайлы этого уровня будут показываться при зумах от 20км до 5м. А вот возможности явно указать, что уровень должен отключаться, скажем, при достижении приближения в 1,2 км (то есть задать нижнее ограничение), форматом не предусматривается. Однако есть неявный способ введения подобного ограничения.

Чтобы отключить карту ниже некоторого приближения, требуется создать в карте еще один слой с нужным значением масштаба (для зума 1,2км это будет 4777), содержащий единственный тайл с координатами, не пересекающимися с координатами карты. Естественно, карта, в которую добавляется новый ограничивающий уровень, может содержать не более четырех обычных уровней.

В качестве изображения тайла может быть использована однопиксельная картинка, либо можно записать в файл ссылку на первый тайл из первого уровня карты. Координаты можно взять равными, скажем, 90N, 180E – это предпочтительный вариант, однако для него потребуется доделка имеющихся на сегодняшний день конвертеров. А можно просто использовать в качестве координат тайла координаты одного из углов карты – такой способ можно применять даже с доступными сейчас программами). В стремлении охватить неохватное, легко выйти за рамки, когда количество тайлов на каком-то уровне может превысить допустимое форматом. Но в SASPlanet мы не можем самостоятельно указывать размеры тайлов для JNZ-карт, как делали это с картами KMZ. Она не даст нам (надеюсь, что пока) увеличивать размеры, уменьшая количество. Но предлагает другой вариант – многотомный архив. Так что не пугайтесь, если увидите в финале вместо одного файла целых два, а то и три. Только, опять же, для меня это тоже область неведомого, таких огромных карт я не делал, но вроде как должно работать.

Возвращаемся в закладку "Экспорт". Сначала определяемся с базовыми вещами – выбираем название для карты и указываем куда мы хотим её сохранить.

Дальше на очереди вкладка "Карты". Последовательность, в которой мы будем заполнять уровни, значения не имеет, они станут правильно при любом раскладе. Мне же кажется логичным размещать карты для верхнего уровня вверху таблицы, а крупные масштабы внизу – сложнее запутаться в "точках перехода" с карты на карту. Но повторюсь – кому как удобнее.

Первым по списку идёт 2км Генштаб. Zoom 14 примерно соответствует бумажной 2-х километровке, но поскольку уровень у нас самый верхний и достаточно большой для бумаги, шкалу поставлю на 3 км. Сжимать её не буду, оставлю 95.

Вторым номером выступает бумажная 250-метровка ГГЦ, снятая с 16-го zoom"a. Карты ходовые, поэтому включу отображение на 300 метров. Сжимать тоже не буду, но при желании качество для бумаги можно умешать до 70, меньше не стоит.

Третьим нижним разместился Google субметровый спутник с 18-го zoom"a. Это много меньше стометровки на бумаге, но она мне нужна и включать я её хочу уже с 200-сот метров. Качество без изменений.

Последний этап, переходим во вкладку "Дополнительные операции". "Тип снимка (ID)". По умолчанию предлагается стандартный список, доступный по подписке BirdsEye. Но можно поставить своё. JNX-карты в приборе группируются по этому полю. Это как виртуальная папка, как библиотека. Физически все файлы карт должны лежать в папке “Garmin\BirdsEye”, но в списке установленных будут разложены по группам. Отображаться будет только буквенное значение группы и имя файла. Структура же заполнения: "цифровое значение" "пробел" "дефис" "слово латиницей". У меня указано ID – "27 – SD". Число месяца – 27, SD – SLUDYANKA. Поля "Название карты" и "Наименование" – эта информация необходима только “BaseCamp”, без неё он отказывается воспринимать самоделки. Можно оставить по умолчанию. "03" в моём случае означает комбинированные уровни.

Draw Order, порядок отображения или Z-сортировка. Эта штука имеет 101-но значение: от 0 до 100. В JNX-картах 4-ой версии, так же как и в KMZ, допускается ручная установка. Что она означает. Изначальные, и самые-самые родные для Гармина – карты векторного формата. Помимо нескольких уровней детализации он имеет многослойную структуру. Такие объекты, как дороги, тропинки, озёра, лесные массивы – все эти вещи располагаются на разных слоях (примерно, как слои в фотошопе). Значение 50 проходит по слою дорог.

Если вы хотите, чтобы поверх вашей JNX-карты отображались какие-то объекты векторной (у меня всегда стоит ТОПО), то нужно устанавливать значения < 50. По мере уменьшения значения к дорогам и тропинкам присоединятся леса и болота, реки и озёра, поля и луга... Путевые точки, треки, маршруты, POI – они находится за границей допустимых значений и отображаться будут всегда. Нажимаем “Начать” – Готово!

Создание и добавление карт в кэш SASPlanet,
если таковые отсутствуют в программе, но есть где-либо

Приведу простой пример, для Тункинских гольцов “Нилова Пустынь – Шумак – Аршан” в программе SASPlanet нет карт Генштаба 500-метрового масштаба, есть 1км и другие. Но, например, на сайте http://loadmap.net/ эти карты есть. Для создания собственных карт понадобится 2 программы: “Global Mapper” и “Satmap”.

Открываем “Global Mapper”. Открываем скачанные листы карты/ файлы привязки map. Экспортируем карту в веб. На настройках остановимся поподробнее: уровень увеличения если к примеру при экспорте он равен 15 как на скрине, то по факту получится 16, то есть на 1 больше. Номер уровня увеличения влияет на то сколько уровней будет создано (я всегда ставлю 1, оно и быстрее происходит, да и удобнее более мелкие зумы в SAS планете создавать). Формат плиток как правило я выбираю JPG с качеством 99 (PNG можно использовать при создании слоёв с прозрачностью) и ставлю галочки в отмеченных на скриншоте местах (оно существенно увеличивает скорость создания тайлов).

В левом поле окна “Импорт Google Map Tiles” ставим галочку в пункте “Все” и нажимаем “Ok”. После чего программа откроет/импортирует тот набор данных, который мы сохраняли в предыдущем шаге в “Global Mapper”.

Выбираем то, что сохранили в 6-м пункте (выбирать сам диск). В зависимости от того в каком формате мы экспортировали из “Global Mapper” и в этой программе указываем расширение. Далее нужно экспортировать кэш. Выбираем меню “Сервис/Экспорт кэша в SASPlanet” Я обычно выбираю все и уровни и слои.

Указываем куда сохранять кэш. Я пока не совсем с этим разобрался и просто сохраняю кэш на рабочий стол а уже оттуда закидываю карту в нужную категорию кэша. В данном примере у нас в программе отсутствовали 500 метровые карты Генштаба для Тункинских гольцов. Кэш я закинул в папку cache/genshtab500. Жмём “Ok” и имеем созданный, нами кэш. После закрытия “SatMap” желательно удалить 3 созданных ею файла, для того чтоб при следующем запуске кэш не смешивался и вышла нормальная карта. Чтоб их удалить я сортирую файлы по дате создания, и созданные в тот день, когда делаю карту, после её создания удаляю.

Модификация прошивки устройства, для возможности бесплатной работы с картами JNX. Вариант для тех у кого прошивка не самой последней версии. Для начала нам нужно где-то достать прошивку на наш аппарат. Самый простой и самый надёжный способ, это приготовить её самим. Для этого нам понадобится “Garmin Web Updater”, который загружаем с сайта Garmin. Устанавливаем веб-апдейтер, подключаем прибор usb-кабелем, после чего запускаем “Garmin Web Updater”. Он находит наш прибор и мы соответственно жмём "Далее". Затем мастер нас проведёт через все ступени обновления. По завершении нажимаем “Готово”, но при этом кабель не отсоединяем. Прибор продолжает оставаться подключенным к компьютеру. Теперь через проводник заходим внутрь прибора в папку “Garmin”. Находим там файлик “GUPDATE.GCD” и скопируем его на рабочий стол в заранее созданную нами папку с названием "Прошивка". Прибор всё так-же подключен к компьютеру! Скачиваем патч. Распаковываем архив в папку "Прошивка" и запускаем патч. Сначала появляется окошко Дискламера. Мы в нём нажимаем “Да” и тут-же запускается сам патчер.

Далее поступаем следующим образом: Нажимаем “Browse..” И в открывшимся окошке мы увидим нашу прошивку. Дважды щёлкаем по ней. Всё... Конечно у патчера есть ещё парочка чекбоксов для галочек, но они не влияют на работу прибора и отображение карт, поэтому останавливаться на них не вижу смысла. Всё. В папке рядом с нашей прошивкой “GUPDATE.GCD” появился файлик “GUPDATE_Patched.GCD”. Это и есть наша патченная прошивка! Её возвращаем в прибор и кладем в папку “Garmin” где и переименовываем из “GUPDATE_Patched.GCD” в просто “GUPDATE.GCD”. Только теперь отсоединяем кабель и перезагружаем, или запускаем прибор. Прошивка начнётся сразу. Всё. Прибор прошит и готов к пониманию и виденью растровых карт JNX формата!

Теперь рассмотрим другой вариант, это когда у вас уже стоит последняя версия и прибор ни в какую не желает "шиться" на патченную версию. Например, на моём Dakota стояла прошивка последней версии (5.80). Источники в интернете в основном предлагаю найти и скачать предыдущую версию прошивки, после чего откатиться на неё. И уже после действовать по вышеописанной инструкции. Но гораздо проще немного обмануть ваш прибор на этапе пропатчивания прошивки. В окне патчера, перед тем как открывать оригинальную прошивку. Нужно поставить галочку в пункте “Adjust Firmware version number”. Тем самым, я как бы обманул навигатор, сказав ему, что ставлю прошивку версии (5.81) на мою (5.80) версию.