Идея написания этой статьи родилась ещё в новогодние каникулы, когда я объяснял, как сделать навигационные карты на основе спутниковых снимков. Тогда была снята основная часть скриншотов, но заготовка статьи осталась пылиться на задворках винчестера. И вот уже на улице вовсю светит солнце и тает снег, приближается новый походный сезон, а я, наконец, поборол лень и дописал текст.
Сейчас у многих имеются устройства, так или иначе оснащённые спутниковой GPS-навигацией. Это может быть смартфон, карманный компьютер, коммуникатор или же просто навигатор. Во многих случаях качество предустановленных карт оставляет желать лучшего, особенно для пеших походов. Тут могут помочь online-источники спутниковых снимков и карт. Достаточно сравнить два изображения одного участка:
Слева — спутниковый снимок Google maps, справа — тот же участок на карте. Который из них выглядит подробней?
Для создания полноценной растровой карты нам понадобится набор из двух программ, некоторое количество времени и интернет-трафика. Полученными в результате картами можно будет пользоваться на любом устройстве, для которого имеется программа OziExplorer или её аналоги.
Инструкция пошаговая, подробно иллюстрированная и должна быть понятна любому новичку.
Получение спутникового снимка или карты местности
На этом этапе нам понадобится программа SAS.Планета, скачать которую можно на официальном сайте sasgis.ru
Первым делом требуется указать в качестве источника данных Интернет и кэш:
А также выбрать нужный тип карты. Что это будет — спутник или карта Google, карты Яндекса или спутниковые снимки с геопортала Роскосмоса, а то и генштабовские карты — зависит только от Ваших личных предпочтений и качества источника на требуемом участке.
Итак, находим визуально, по координатам или встроенному поиску нужный участок. Определяем требуемую детализацию, увеличивая масштаб изображения. Текущий масштаб указывается слева, под линейкой масштабирования, в относительных уровнях (z14, z16 и так далее). Он пригодится нам на следующем этапе. Ориентируйтесь на то, чтобы нужные объекты были хорошо различимы и не «замылены». Но и не забывайте, что каждый уровень детализации увеличивает размер результирующей карты.
Уменьшаем масштаб до тех пор, чтобы весь нужный участок карты вошёл в экран. Выбираем инструмент «прямоугольное выделение» (вторая слева кнопка на панели инструментов или сочетание Ctrl+R на клавиатуре), и выделяем границы нашей будущей карты.
По окончании выделения появится диалоговое окно «Операции с выделенной областью». Сейчас нас интересует вкладка «Загрузить». Нужный тип карты уже выбран, а требуемый уровень детализации надо выбрать в выпадающем списке (мы его уточняли чуть раньше). Остается только нажать кнопку «Начать».
Спустя некоторое время (зависящее от детализации и площади карты), её участки будут загружены, и в окне появится надпись «Обработка файлов завершена». Окно загрузки можно закрыть, и переходить к следующему этапу — склейке снимков.
Выбираем в меню выделения пункт «Предыдущее выделение», либо нажимаем Ctrl+B на клавиатуре, чтобы заново не выделять ту же самую область, и появится знакомое нам окно.
На этот раз нас интересует вкладка «Склеить». Здесь потребуется настроить большее количество параметров:
- Результирующий формат — формат изображения, в котором будет сохранена наша карта. Для дальнейшей обработки желательно выбирать BMP, хотя он и занимает больше места, но понимается всеми программами и не имеет потерь при кодировании.
- Куда сохранять — здесь надо указать папку и имя файла, в который будет сохранена карта.
- Тип карты — будет автоматически подставлен текущий источник.
- Масштаб — не забудьте выставить нужный уровень детализации. По умолчанию программа выставила низкодетализованный, отображающийся сейчас на экране.
- Наложить — здесь на карту можно наложить дополнительные слои. Такие, как Гибрид для Google maps, где отображены основные дороги и условные обозначения. Иногда может быть полезным для уточнения спутниковых снимков или нанесения на них названий населенных пунктов. Для этого не забудьте прогрузить дополнительный слой с нужным уровнем детализации при помощи метода, описанного выше.
- Создавать файл привязки — отметьте галочкой пункт «.map», он нам пригодится на следующем этапе. В файле будут сохранены географические координаты углов результирующего изображения.
Нажимаем кнопку «Начать» и через некоторое время в указанной папке получаем два файла — изображение с картой и .map-файл привязки к координатам. Некоторые навигационные программы могут напрямую использовать такие изображения. Но для карманных устройств с ограниченным количеством ресурсов лучше всё же сохранить карту в специальном формате.
Обработка снимка в графическом редакторе
Нередко из-за не совсем удачных условий освещения, или мешающей дымки, или в силу ещё каких-то причин спутниковые снимки бывают «слепыми», особенно при отображении их на экране мобильного устройства в яркий солнечный день. Для улучшения можно провести небольшую коррекцию в любом графическом редакторе. Я покажу это на примере бесплатного XnView, но Вы можете использовать любой другой подходящий (от IrfanView до Photoshop), эта процедура везде аналогична.
Но если качество и контрастность полученного на предыдущем этапе изображения Вас полностью устраивает, можете пропустить этот этап.
На снимке выше показано исходное изображение и нахождение пункта меню «Автокоррекция уровней», который можно использовать для автоматической подстройки контраста. На снимке ниже — результат этой операции. Как можно увидеть — цветность и контраст изображения увеличились, различимость дорог и водных объектов тоже немного улучшилась.
Можно использовать также ручной режим — правку контраста и гамма-коррекции (увеличить то и другое):
или Оттенка/Насыщенности/Осветленности. Ориентируйтесь на более подходящих для Ваших условий вариант.
После всех преобразований не забудьте сохранить результаты цветокоррекции.
Преобразование снимка в формат OziExplorer
Для дальнейшего преобразования картинки в более компактный формат, понимаемый OziExplorer-ом нам понадобится утилита img2ozf. Скачать её можно бесплатно на официальном сайте OziExplorer: oziexplorer3.com/img2ozf/img2ozf.html. По ссылке — последняя версия утилиты, сохраняющая в ozfx3 формат. Для ozf2-файлов (используются в более старых версиях OziExplorer) потребуется найти более старую версию утилиты. В этом вам поможет поиск.
Устанавливаем и запускаем программу. В поле Source Image Folder указываем путь, по которому лежат подготовленные изображения и соответствующие им .map -файлы. В поле Destination Folder указываем, куда складывать конвертированные карты (если нажать синюю стрелочку слева, будет использоваться папка с исходными файлами). Можно поиграться с количеством цветов (поле Number Colors в левой части). Чем больше количество цветов, тем плавней картинка, но тем больше размер результирующего файла.
Отмечаем галочками нужные для конвертирования изображения и нажимаем большую кнопку Process Image Files to OZF Files.
Программа некоторое время пошебуршит, перерабатывая файлы. При этом в строке статуса отображаются текущие операции. Программа создает несколько уровней детализации для разных увеличений, чтобы не тратить ресурсы мобильного устройства для пересчета больших изображений. Поэтому кодирование происходит в несколько проходов.
Как только в строке статуса появится надпись Completed — конвертирование завершено. В папке, указанной в Destination Folder появятся два файла — .ozfx3 (или .ozf2 для старой версии) и соответствующий ему .map-файл (который, в отличие от исходного, будет иметь имя типа исходное_название_ozf.map).
Теперь осталось оба этих файла залить на мобильное устройство, и указать OziExplorer место, где они лежат.
Например, так выглядит окно OziExplorer со спутниковыми снимками в Windows Mobile:
Вот и все, карты готовы.
Если что-то осталось непонятным — спрашивайте в комментариях — постараюсь ответить.
Замечательный и оченно полезный материал! Если Вы не против, то хотелось бы утащить его к себе на сайт со сслыкой на оригинал, естественно.
Да, пожалуйста.
Тем более ресурс-земляк близкой тематики 🙂
Михаил! Ты мегамонстер! купаемся в лучах твоего величия, и вообще машем этими.. пушистыми махалками, как на стадионе! работает быстро и чудненько твоя инструкция!
Уважаемый Михаил!
Прочитал вашу статью «Как создать свою карту для спутниковой навигации». Все, о чем вы пишете прекрасно получается. Но, к сожалению, конца у вашей статьи нет. Она заканчивается: » Теперь осталось оба этих файла залить на мобильное устройство, и указать OziExplorer место, где они лежат.» И ничего не написано, как залить! У меня Garmin eTrex 30. Он с этими файлами упорно не работает. Кроме того, OziExplorer при попытке отрыть эти файлы сообщает об ошибке. Опыта работы у меня никакого. Может, я чего-то не знаю элементарного? Буду очень рад, если вы сообщите мне, что делать дальше. Заранее благодарен. С уважением. Алексей.
p.s. Мой E-mail: gugonio@rambler.ru
Спасибо за внимание к статье.
А эта модель точно поддерживает карты OziExplorer-а?
Может быть, карты она принимает только в своем, гарминовском формате? И умеет ли вообще работать с растровыми картами?
Мне кажется, Вам лучше посмотреть по тематическим форумам посвященным этому семейству моделей Garmin, я с таким типом навигаторов не сталкивался.
А обойден в этой статье момент с заливкой карт на устройство, потому что в каждом случае это делается своим способом — для WindowsMobile одним, для Android — другим и т.д.
Посмотрел по форумам — вот что пишут:
Кроме того, на этапе склейки изображения в SasPlaneta можно выбрать формат «kmz для Garmin» который вроде бы принимается этой моделью.
И еще: векторные карты из OpenStreetMap доступны уже в нужном формате по ссылке http://gis-lab.info/data/mp/
Добрый день, подскажите пожалуйста какие программы нужны, у меня не получается склеить, я прописываю куда сохранить выдает ошибку системе неудается найти указанный путь
Склеиваете как на этом скриншоте?
Имя файла для сохранения правильно выбираете? Может проще через кнопку с тремя точками справа от «Куда сохранять»?
Попробуйте в корень диска C сохранить, может на каком-то этапе вводите несуществующий или заблокированный путь?
спасибо за ответ, вопрос снят, я скачивала SasPlaneta с официального сайта и у меня застопилось на склеивании, скачав по другой ссылке все получилось, склеила, отконвертировала , закачала в андроид все работает, вот только немогу найти как оставить на карте уже выделенный район, чтоб дважды его не скачивать
Сохранить выделение или сохранить скачанное? Если программа распакована корректно, в папку, разрешенную на запись, то кэш на диск сохраняется автоматически. А если речь о сохранении выделения, то в статье есть же скриншот, как вызвать предыдущее выделение:
да склеивание было как на скриншоте, у меня не работала кнопка «куда сохранить, с права с точками», я забивала путь в ручную, может поэтому и не получалось
сохранить скаченное
День добрый! Статья очень интересная и познавательная, спасибо!
У меня же следующий вопрос — есть какие-нибудь приложения на Android для того, чтобы автоматически из картинки (фото) сделать карту, то есть использовать картинку как фон, назначив лишь масштаб для соотношения масштаба изображения и реального масштаба?
Не совсем понял о каком фото идет речь. Если о спутниковом фото — то здесь как раз описан такой способ. Фотографию же надо привязать к координатам. И подготовленную таким способом подложку можно открыть в OziExporer и поддерживающих его формат программа под Android — например Androzic.