воскресенье, 24 февраля 2019 г.
Растровые карты для Garmin -- просто. Часть 3. JNX с помощью SAS.Planet
taginvn.livejournal.com
Растровые карты для Garmin -- просто. Часть 3. JNX с помощью SAS.Planet
fomaru
13-18 минут
В главной своей логике создание JNX-карт очень похоже на создание карт KMZ -- всё так же нужно выделить полигон, загрузить тайлы, а потом экспортировать их в нужный формат. Добавились только дополнительные уровни, числом до 5. Причём отличаться они могут не только своей детализацией (что логично), но и источником картографической информации -- на нижних слоях детальные космоснимки, в серединке топографические карты, а на самом верху какая-нибудь кадастровая информация. Доступная же площадь покрытия ограничена, пожалуй, только ёмкостью SD-карты.
Вообще-то всё, что вы хотели знать, но боялись уточнить про структуру JNX-формата, можно прочитать на специальной страничке всё того же a_whiter'a. А отслеживать развитие прогресса в деле экспорта в jnx -- на форуме SAS.Планеты в посвящённой этому теме. Мы же постараемся вникнуть только в базовые аспекты и попробуем разобраться, как они влияют на конечный результат. Но лучше это делать по ходу создания карты конечно.
- Запускаем программу и находим нужный регион. Я опять далеко от дома ходить не буду и возьму всю ту же пойму речки Серёжа, где по весне бывает отличная охота с подсадной :) Если для карт KMZ нам нужно было выбрать один уровень и один источник для него, то сейчас можно пофантазировать. Но перед этим не плохо бы проверить, кто что предлагает на данную территорию. Побродив по меню Карт, я выбрал три уровня (больше не придумал). На нижнем (z19) у нас будут лежать всё тот же субметровый Яндекс.Спутник; в серединке (z17), чтобы не заблудиться, положим "бумажный" Генштаб на 250 м., а в самом верху (z14) разместим космоснимки от Бинга -- не лишним будет иметь весеннюю съёмку с очертаниями разливов для тех мест, в которых и бываешь-то только весной и именно по большой воде.
- Дальше по тому же шаблону.
- После этого уже начинается область неизведанного -- закладка "Экспорт"
Но прежде не могу не заметить, что ограничений, не считая разумных, на площадь полигона для JNX-карт практически не осталось. Выражаются они только ёмкостью SD-карты, которую способен прочитать ваш девайс. Сейчас это 32 Гигабайта, но прогресс, конечно, неумолим... Предварительно рассчитать вес карты немного затруднительно -- зависит от количества уровней, их значений и степени сжатия картинок, поэтому начинайте с умеренных площадей и с опытом будете знать средние значения для своих предпочтений. 2.1. Поехали нащёлкивать полигон:
2.2. И по очереди загружать выбранные слои:
2.3. Не забыв потом убедиться с помощью "Карты заполнения слоя", что все выбранные тайлы на месте:
Представьте, что перед вами лежит стопка карт одной и той же местности. Чтобы рассмотреть более детально какой-то квадрат, вы просто откладываете в сторону лист с мелким масштабом и переходите к следующему. Сначала 10-ти километровку, потом 5-ти, потом 2, потом 1, потом 500 метров... В навигаторе же детализация может происходит более плавно, потому что градация масштабов более расширенная. И увеличивая масштаб, какое-то время вы всё равно будете рассматривать всё ту же карту.
Если вы ходили по ссылкам в начале поста, то уже знаете о том, что в родных JNX-картах, полученные по подписке BirdsEye, содержатся уровни со значениями масштабов, заданных некими целыми числами разной величины. Что они означают на самом деле -- науке до сих пор неизвестно и остаётся тайной
Всё было бы просто, если бы мы делали карты по шаблону 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 км. -- для пущего обзора окрестностей.
Так что если вдруг вы попадёте в ситуацию, когда часть карты на каких-то значениях перестала выводится на экран, при этом она точно там была и работала, то выходом из такой ситуации является только временное отключение какой-то одной, пока не нужной.
Это что касается значений верхнего уровня. Теперь перейдём к нижнему. С ним просто -- его нет. Карта любого масштаба, если она лежит на самом нижнем уровне, по идее будет отображаться вплоть до предельных приземлённых значений (в гармине -- 5 м.) Для космоснимков по подписке BirdsEye это может и нормально, но если у нас на нижнем уровне окажется хотя бы километровка, то при приблежении в 5 метров экран отобразит даже не пиксель отсканированной карты, а его маленькую часть.
Для таких случаев тоже придумано решение, но оно не совсем тривиальное. Я такого ещё не делал, поэтому просто процитирую a_whiter'a
В картах JNX имеется только верхнее ограничение на уровни приближения, при которых показывается тот или иной уровень карты. Скажем, если в заголовке уровня JNX прописано значение масштаба 76437, то тайлы этого уровня будут показываться при зумах от 20км до 5м. А вот возможности явно указать, что уровень должен отключаться, скажем, при достижении приближения в 1,2 км (то есть задать нижнее ограничение), форматом не предусматривается.
Однако есть неявный способ введения подобного ограничения, предложенный пользователем aabbcc форума gpsunderground.
Чтобы отключить карту ниже некоторого приближения, требуется создать в карте еще один слой с нужным значением масштаба (для зума 1,2км это будет 4777), содержащий единственный тайл с координатами, не пересекающимися с координатами карты.
Естественно, карта, в которую добавляется новый ограничивающий уровень, может содержать не более четырех обычных уровней.
В качестве изображения тайла может быть использована однопиксельная картинка, либо можно записать в файл ссылку на первый тайл из первого уровня карты.
Координаты можно взять равными, скажем, 90N, 180E - это предпочтительный вариант, однако для него потребуется доделка имеющихся на сегодняшний день конвертеров. А можно просто использовать в качестве координат тайла координаты одного из углов карты - такой способ можно применять даже с доступными сейчас программами.
Пока доставал цитату, усмотрел там ещё один важный момент, про который забыл упомянуть. В стремлении охватить неохватное, легко выйти за рамки, когда количество тайлов на каком-то уровне может превысить допустимое форматом. Но в SAS.Планете мы не можем самостоятельно указывать размеры тайлов для JNZ-карт, как делали это с картами KMZ. Она не даст нам (надеюсь, что пока) увеличивать размеры, уменьшая количество. Но предлагает другой вариант -- многотомный архив. Так что не пугайтесь, если увидите в финале вместо одного файла целых два, а то и три. Только опять же -- для меня это тоже область неведомого, таких огромных карт я не делал, но вроде как должно работать.
Ну ладно, "положение на фронтах" мы рассмотрели, пора продолжить "драку".
- Возвращаемся в закладку "Экспорт"
3.1. Сначала определяемся с базовыми вещами -- выбираем, что мы будем делать, придумываем название для карты и указываем программе, куда мы хотим её сохранить:
3.2. Дальше на очереди вкладка "Карты".
Последовательность, в которой мы будем заполнять уровни, значения не имеет, они станут правильно при любом раскладе. Мне же кажется логичным размещать карты для верхнего уровня вверху таблицы, а крупные масштабы внизу -- сложнее запутаться в "точках перехода" с карты на карту. Но повторюсь -- кому как удобнее.
3.2.1. Первым по списку у нас идёт плохонький, но весенний Бинг. Zoom 14 примерно соответствует бумажной 2-х километровке, но поскольку уровень у нас самый верхний и достаточно большой для бумаги, шкалу поставлю на 5 км -- при чуть более двукратном уменьшении ещё можно что-то рассмотреть и понять. Сжимать её не буду, оставлю 95.
3.2.2. Вторым номером выступает бумажная 250-метровка, снятая с 17-го zoom'a. Карты ходовые, поэтому включу отображение на 300 метров, хотя она здесь "чтоб просто была". Сжимать тоже не буду, но при желании качество для бумаги можно умешать до 70, меньше не стоит.
3.2.3. Третьим нижним разместился яндексовский субметровик с 19-го zoom'a. Это много меньше стометровки на бумаге, но она мне нужна и включать я её хочу уже с 200-сот метров. Качество без изменений.
3.3. Ну и последний этап -- "Дополнительные операции"
3.3.1. "Тип снимка (ID)". По умолчанию предлагается стандартный список, доступный по подписке BirdsEye.
Но можно поставить своё. JNX-карты в приборе группируются по этому полю. Это как виртуальная папка, как библиотека. Физически все файлы карт должны лежать в папке Garmin\BirdsEye, но в списке установленных будут разложены по группам. Отображаться будет только буквенное значение группы и имя файла. Структура же заполнения: "цифровое значение" "пробел" "дефис" "слово латиницей". У меня указано ID -- "52 - NN" -- раскладываю по регионам.
3.3.2. Поля "Название карты" и "Наименование" -- эта информация необходима только BaseCamp'у, без неё он отказывается воспринимать самоделки. Можно оставить по умолчанию. "03" в моём случае означает комбинированные уровни
3.3.3. Версий формата на сейчас 2 штуки, но нумеруется как 3 и 4. Скажу так -- делайте в 4-ой. Не взлетит -- понижайте. Если опять не взлетит, то скачайте просмоторщих JNX-карт QLandkarte GT -- с ним в комплекте идёт конвертер, который может на картах 4-ой версии создать порядок отрисовки для старых (до 2011 года) прошивок. Я про него (конвертер) писать не буду, потому что не использовал.
3.3.4. Draw Order, порядок отображения или Z-сортировка. Эта штука имеет 101-но значение: от 0 до 100. В JNX-картах 4-ой версии, так же как и в KMZ, допускается ручная установка.
Что она означает. Изначальные, и самые-самые родные для Гармина -- карты векторного формата. Помимо нескольких уровней детализации он имеет многослойную структуру. Такие объекты, как дороги, тропинки, озёра, лесные массивы -- все эти вещи располагаются на разных слоях (примерно, как слои в фотошопе). Значение 50 проходит по слою дорог.
Если вы хотите, чтобы поверх вашей JNX-карты отображались какие-то объекты векторной (у меня всегда стоит ТОПО), то нужно устанавливать значения <50. По мере уменьшения значения к дорогам и тропинкам присоединятся леса и болота, реки и озёра, поля и луга... Путевые точки, треки, маршруты, POI -- они находится за границей допустимых значений и отображаться будут всегда.
Растровые карты для Garmin -- просто. Часть 2. Подготовка прибора для JNX
taginvn.livejournal.com
Растровые карты для Garmin -- просто. Часть 2. Подготовка прибора для JNX
9-13 минут
Когда фирма Гармин наконец-то решилась использовать растровые форматы, она и сама тут же захотела предложить своим клиентам взглянуть на Землю не только через плоскость топографических карт, но и с высоты птичьего полёта. Для чего запустила сервис BirdsEye, купив подписку в котором, вы сможете заливать в приборы не только схематические изображения местности, но и достижение нынешней цивилизации -- космоснимки.
Контейнер (формат/расширение файлов), в который упаковываются космические фотографии для заливки в прибор, она назвала JNX.
Хоть в сердце своём, как и у KMZ-файлов, всё так же остаётся растровое изображение с топографической привязкой, служебная оболочка тут более продвинутая:
• Во-первых, появились уровни детализации (масштабирование). Числом 5.
• Во-вторых, если прибор может понять (и простить нам) только 100 (или 500 в приборах Montana) KMZ-файлов/тайлов, то JNX-контейнер позволяет разместить их по 50.000 на каждом уровне.
• В-третьих, Гармин разрешила заливать до 250-ти карт/контейнеров в устройства с прошивками, выпущенными с марта 2011 года и до 200 карт, работающих на более ранних прошивках. (!) Именно прошивках, не приборах. Прошивки можно обновить, если доступны.
• В-четвёртых, исходя из предыдущих количественных показателей, мы можем без существенных площадных потерь смело уменьшать размер и вес каждого тайла, от чего должна увеличиться скорость отображения/обновления и прокрутки картинки на экране.
Но есть и ложечка... дёгтя -- вся эта красота залочена и жестко привязана к устройству.
(!!!) Поэтому! а) если вы не готовы пропатчить (читай перепрошить) свой прибор из-за каких-то суеверий, из-за боязни за прямоту рук или в страхе потерять гарантию, б) при этом так же нет готовности официально оплатить BirdsEye Satellite Imagery -- то лучше остановиться на этом месте, довольствуясь возможностями KMZ-формата. По-крайней мере -- до созревания :)
Теперь о том, как самодельные JNX-карты могут попасть в наши приборы.
- Первый способ прост. Надо оплатить BirdsEye Satellite Imagery, после чего через BaseCamp (это базовая программа фирмы Гармин для взаимодействия со своими устройствами) активировать свои самодельные карты. Шаги простые: а) создать карту (об этом далее), б) подсоединить прибор к компьютеру, в) залить в него карту (методом простого копирования) г) запустить BaseCamp и импортировать карту из прибора (она не видит файлы карт на жёстком диске) в свою коллекцию. После чего программа активирует вашу карту и привяжет к устройству. Да, действительно всё просто... но за $30 в год :)
- Второй способ ещё проще. Все мы не только знаем, что электронные мозги приборов надо периодически обновлять (прогресс неумолим), но и с радостью это делаем. Так надо поступить и в этот раз. Но с небольшим шажочком в сторону -- между процессом скачивания и установкой в навигатор "вылечить" прошивку.
Но перед тем, как приступить к процедуре, нужно посетить страничку на сайте a_whiter'a, автора патчера, и убедиться, что ваш прибор и прошивка пригодны для такого лечения. Если данные прибора совпадают с возможностями патчера, смело переходите на страницу загрузки актуальной версии (по ссылке на той же странице), скачивайте и распаковывайте в удобную для вас папку.
- Далее:
- Включаем навигатор и проверяем заряд батареек. Если он меньше половины, то во избежание большого ФАКа меняем батарейки на новые (заряжаем аккумуляторы короче).
- Подключаем его к компьютеру и дожидаемся полного коннекта.
- Запускаем Garmin WebUpdater (если его вдруг до сих пор нет, то предварительно скачиваем и устанавливаем).
- WebUpdater запущен, и если всё сделано правильно, то он сразу определил ваш прибор.
- ...мы всё равно продолжим загрузку:
- Как только загрузка завершится, WebUpdater предложит нам установить дополнительные обновления или "пройти на выход" Этого делать не нужно!
- Потому что нужно другое -- подготовить фронт работ для патчера.
- Дальше в дело вступает патчер, ранее нами скаченный. После запуска сразу увидим дисклаймер:
Алгоритм действий может немного различаться в зависимости от того, какая прошивка стоит в вашем приборе -- старая или последней версии. Но в любом случае нам необходимо, чтобы файл (GUPDATE.GCD, реже FW_ALL.BIN) самой новой версии оказался на жёстком диске нашего компьютера. Поэтому, даже если WebUpdater сообщит нам, что в приборе стоит самая_при_самая последняя версия...
*WebUpdater для Windows немного отличается внешним видом, но смысл процесса остаётся неизменным.
Читаем дисклаймеры, принимаем условия игры...
И дожидаемся окончания процесса:
Оставим пока окно открытым.
Не закрывая окна WebUpdater-а (на всякий случай -- встречал машины, где закрытие приводит к автоматическому отключению от порта USB), открываем две папки, первая ?Х:\Garmin\ на приборе, а вторая -- специально созданная нами для этих целей. Нам нужно переместить файл GUPDATE.GCD, залитый WebUpdater-ом из прибора в нашу папку на компьютере (можно скопировать, но обязательно потом удалить файл в приборе)
Это обычное предупреждение, что если мы что-то сломаем, то сами и дураки. Разве поспоришь? Соглашаемся, что делать -- всё равно программа без этого не запустится.
Кроме всего прочего в тексте сообщений окна есть важный момент. Смысл его в том, что если прошивка вашего навигатора выпущена позднее марта 2011 года, то карты, созданные с помощью программы MAPC2MAPC версии 444 и ниже, а так же утилитой map2jnx версии 0.1.5 и ниже, больше с ней не совместимы. Их нельзя использовать с прибором, и если вдруг таковые уже лежат в папке ?Х:\Garmin\\BirdsEye -- их необходимо удалить во избежание зависания при загрузке.
Так вот, окно... С помощью кнопки "Обзор/Browse", или путём обычного перетаскивания мышкой на поле программы сохранённого нами файла GUPDATE.GCD, сразу начнётся процесс "лечения", через несколько секунд сообщив нам о удачном исцелении:
После этого патчер можно закрыть. А в папке с прошивкой, рядом с файлом GUPDATE.GCD мы увидим другой, под названием GUPDATE_Patched.GCD
Дело в том, что пропатченная прошивка -- это не какая-то новая и совершенно отличная от официальной программа, а всё та же версия той же гарминовской прошивки, которой лишь в маленькой толике был подправлен код. А прибор, при условии, что установленная прошивка не глючная и работает без ошибок, обновляться на ту же самую версию откажется, оставшись "при своих". Поэтому, прежде чем установить новую прошивку, нам нужно 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 и открыть его любым текстовым редактором (блокнот подойдёт). Практически в первых строках кода найти примерно такую строчку: <Model><PartNumber>006-B0661-00</PartNumber><SoftwareVersion>370</SoftwareVersion>.
Это означает, что HWID прибора "0661" с версией прошивки "370" (при этом не обольщайтесь, обмануть прибор, как раньше бывало, просто поправив версюю в коде на более раннюю (360; 350 … 320), больше не получится -- они стали чуть умнее). Потом найти в таблице свою версию, загрузить на компьютер и разархивировать, если файл упакован в архив.
- Downgrade
- Upgrade
9.1. Если файл имеет вид "прибор.exe", то значит мы имеем дело с утилитой типа WebUpdater-а, только с прошивкой, упакованной внутри файла. Нужно соединить прибор с компьютером и запустить программу -- она сама скопирует прошивку в прибор точно по тому же принципу (п-п. 4; 5; 6.) 9.2. Если файл имеет вид "прибор.gcd", то его нужно переименовать в GUPDATE.GCD и самому скопировать в папку ?Х:\Garmin\
9.3. Отсоединяем навигатор от компьютера, включаем его. Положительно отвечаем на вопрос типа "Вы действительно хотите установить более старую версию прошики?" и через какое-то время, не больше 3-5 минут, прошивка будеи установлена, а прибор заработает. Всякие установки (часовой пояс, единицы измерения, етц) можно оставить по умолчанию -- нас снова ждёт...
10.1. Соединяем прибор и компьютер (если разъединены), дожидаемся полного подключения. 10.2. Созданный ранее файл GUPDATE_Patched.GCD копируем всё туда же, в папку ?Х:\Garmin\
10.3. Как только операция закончится, переименовываем его в приборе на GUPDATE.GCD
10.4. Опять отсоединяем прибор.
10.5. Включаем его.
10.5. Через несколько минут, когда уже пропатченная прошивка встанет на место -- мы готовы к новым приключениям :)
Растровые карты для Garmin -- просто. Часть 1. KMZ с помощью SAS.Planet
taginvn.livejournal.com
Растровые карты для Garmin -- просто. Часть 1. KMZ с помощью SAS.Planet
fomaru
16-23 минуты
Однажды фирма Гармин, под давлением прогресса и общественности, разрешила заливать в свои навигаторы карты, созданные на основе растровых изображений. Для чего усовершенствовала уже имеющийся формат, придумала новый, а ещё один позаимствовала у "корпорации добра" под названием 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 помощью программы SAS.Planet -- а) она наша, родная, что меня, если честно, сильно греет; б) она бесплатная; в) с ней не возникает проблем с установкой, освоением и работой -- проще не бывает; г) она мегаресурсная -- тут тебе и космоснимки на любой вкус, тут и "бумага" начиная с Генштаба, ГГС и заканчивая историческими картами; д) и самое главное -- всё делается силами одной программы, с начала и до конца.
Если она ещё не пригрелась на вашем компе, то срочно идите на страницу загрузки, которая через десяток секунд должна начаться автоматически. Устанавливается, как не банально, путём простого перемещения скаченной папки с программой в C:\Program Files. Никаких установщиков. Запускается по даблклик на SASPlanet.exe
Клеить карту мы будем на примере космоснимков, поскольку есть небольшие нюансы. То есть с "бумагой" всё так же по сути, но с масштабами проще -- они или есть или их нет...
- Запускаем программу:
На данный момент я использую разные версии SAS.Planet.Nightly, так называемые "ночные сборки", а последняя стабильной является v.121010. Местами они немного различаются, но про это я упомяну в контексте. - Затем нам нужно переместиться в тот регион, из которого будем делать карту. Это удобней сделать с помощью каких-то простых и наглядных обзорников. Не плохо подходят обычные Яндекс.Карты. Переключение на ту или иную карту осуществляется в меню "Выбор основной карты":
- Теперь нам нужно определиться с поставщиком космоснимков, раз мы решили клеить карту из них. Таких в обойме SAS.Планеты предостаточно. Но вне конкуренции, как правило, только Google и Яндекс. Возьму последний -- для того региона, что я выбрал, они самые детальные:
- Приступим к созданию полигона. САС.Планета предлагает на выбор 5 вариантов решения:
- Как только мы закончим с полигонами, всплывёт окошко "Операции с выделенной областью". Только мы не будем пока ничего в нём заполнять, а отодвинем в сторонку, чтобы не мешалось. Хотя можно и просто закрыть. Оно снова откроется по сочетанию клавиш "Ctrl+B" или выбором пункта "Предыдущее выделение" в том же меню.
Рассмотрим для примера парочку самых актуальных: прямоугольное выделение и сложносочинённый полигон.
• Прямоугольное выделение самое незамысловатое. На два клика мышкой: один раз в верхнем левом углу, второй -- в нижнем правом.
• Для сложного полигона пощёлкать придётся от души. Но памятуя о суровых ограничениях, этого сложно избежать, выбирая длинные извилистые реки или какие-то участки плюс подъездные дороги к ним.
В 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.Планете, нужно в меню "Вид" снять галочку напротив строчки "Брать карты из меньших масштабов" и отсутствующие тайлы выводиться не будут:
- Выбор сделан, возвращаемся в окно "Операции с выделенной областью".
- Но прежде не плохо бы убедиться, что он закончился с положительным результатом. Помочь в этом деле может "Карта заполнения слоя". В этом меню нужно указать три параметра:
- Ну и финальная вкладка "Склеить":
Оно сразу откроется на вкладке "Загрузить"
Если вы уже определились с масштабом слоя, то нужно выполнить всего 3 пункта:
5.1. Проверить тип карты.
5.2. Удостовериться в правильности масштаба -- по умолчанию он будет указывать на зум, на котором делался полигон, и далеко не тот, что нужен.
5.3. Снять галочку напротив пункта "Закрыть окно после старта" -- мы же доведём дело до конца? :) Как только всё проверим -- жмём "Начать".
По окончании процесса закрываем окно загрузки и переходим на следующую вкладку...
• В подменю "Формировать для..." выбрать "Как на главной карте", или тут карту, которая нужна.
• Выбрать масштаб (на картинке стоит 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.
Начинаем заполнять поля:
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)
Всё, нажимаем "Поехали" и после окончания склейки...
...идём проверять свои файлы:
Ну что, осталось только залить их в прибор, путь до \Garmin\CustomMaps уже заказан :)
среда, 20 февраля 2019 г.
Как смонтировать папку, как диск?
Задача такая, надо смонтировать папку (D:\Asa\Tresh), как диск (предположим... Z:\). Как это сделать?
П.С.
П.С.
- Можно испоьзовать сторонние программы(если они НЕ загружаются вместе с системой)
- Вопрос задан
- 115 просмотров
subst /?
Сопоставление имени диска указанному пути.
SUBST [диск1: [диск2:]путь]
SUBST диск1: /D
диск1: Задает виртуальный диск, который сопоставляется с указанным
путем.
[диск:2]путь Задает физический диск и путь,
которые сопоставляются с виртуальным диском.
/D Удаляет ранее созданный виртуальный диск.
Введите SUBST без параметров для вывода текущего списка виртуальных дисков.
четверг, 14 февраля 2019 г.
Где посмотреть результат CHKDSK.EXE /R в Windows 7
Очень многие ошибки и глюки Windows связаны с HDD. Для поиска
поврежденных секторов и восстановление хранящихся в них данных,
системные администраторы используют программу chkdsk с различными
параметрами. Например:
Результат будет в Журналах Windows – Приложение – Источник Wininit
В свойствах события будут все подробности проверки диска
chkdsk /Rно данная проверка не может быть произведена “на лету”, т.е. при загруженной Windows. Поэтому программа предлагает произвести проверку при первой перезагрузке. Результат проверки будет выведен на экран. А как быть, если Вы работает с компьютером удаленно и не видите экран. Где найти и посмотреть результаты проверки диска CHKDSK в Windows 7?
Результат будет в Журналах Windows – Приложение – Источник Wininit
В свойствах события будут все подробности проверки диска
Подписаться на:
Сообщения (Atom)