Оригинал взят у
taginvn в
Растровые карты для Garmin -- просто. Часть 1. KMZ с помощью SAS.Planet Однажды фирма Гармин, под давлением прогресса и общественности, разрешила заливать в свои навигаторы карты, созданные на основе растровых изображений. Для чего усовершенствовала уже имеющийся формат, придумала новый, а ещё один позаимствовала у "корпорации добра" под названием 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 м.). Если вам будет легче усвоить, то представите себя поднимающимся на воздушном шаре -- чем выше вы над уровнем земли, тем меньше масштаб "карты-земли". Верхний уровень -- выше над землёй, понижаем уровень -- опускаемся на землю. Грамотно как с точки зрения логики, так и юзабилити интерфейса устроен сервис
Яндекс.Карт -- кнопочка "+" у них находится внизу: