Подготовка оффлайн-карт

GPS навигация для Android

Ранее я рассказал, как использовать записи треков и путевых точек для навигации с помощью Андроид-телефона или планшета. В этот раз я поделюсь опытом подготовки оффлайн-карт для Андрозик и OziExplorer.

Эта процедура состоит из двух шагов.

Шаг 1: Подготовка карты формата ECW в SAS.Планета

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

Хорошо, что делать нужные карты с помощью SAS.Планета совсем не сложно.

Чтобы описать этот сервис позволю себе длинную цитату:

"SAS.Планета (SASPlanet) – программа, предназначенная для просмотра и загрузки на жёсткий диск компьютера спутниковых снимков высокого разрешения и обычных карт, предоставляемых сервисами Google Earth, Google Maps, DigitalGlobe, «Космоснимки», Яндекс.карты, Yahoo! Maps, VirtualEarth, Gurtam, OpenStreetMap, eAtlas, iPhone maps, карты Генштаба и др. Все скачанные карты останутся у вас на компьютере, и вы сможете просматривать их даже без подключения к интернету...

Загрузка карт осуществляется как выделением некоторой области (возможно непрямоугольной), так и в процессе перемещения по карте. Карты часто обновляются – программа позволит вам загрузить только самые новые."

Для начала подойдет следующий порядок действий:

1) Скачиваем программу (берем последнюю ночную сборку) и разархивируем в любую папку. Не заморачиваемся на "дополнительный репозиторий". Не плохо бы прочитать справку на Вики. Запускаем приложение.

2) В меню "Карты" выбираем карту, естественно. В меню "Слои" - слой, который будет наложен на основную карту. Например, мне нравится на спутниковую карту Яндекса накладывать слой Гибрид (Wikimapia), а кому-то нравится "голый" спутник. Для ускорения нашего выбора на панели инструментов предусмотрены соответствующие значки - при наведении на них курсора всплывают соответствующие подсказки.

3) Осваиваем интуитивно понятную "операцию с выделенной областью" - найдите на панели инструментов значок с такой подсказкой. Я выделяю нужный полигон и обязательно сохраняю его. Это удобно, так как позже, вероятно, захочется вернутся к построенному полигону для подготовки карты с другими слоями. При необходимости, можем смело закрывать окошко, появляющееся после окончания выделения области - его легко вызвать снова.

4) При помощи одной из трех последних строк в том же инструменте выделения областей вызываем ранее упомянутое диалоговое окно с несколькими вкладками (жмите зеленую галочку, если увидите). В нем на уже открытой вкладке "Загрузить": а) выбираем один самый детальный масштаб (например, 16й или 18й - посмотрите какой вас устраивает и при этом несет дополнительную информацию); б) найдите в левом нижнем углу и выберите флажок "не закрывать окно после старта" - это только для удобства. Жмем "Начать".

5) Когда в появившемся маленьком окошке увидите надпись "Обработка файлов завершена!", закрываем его и переходим на вкладку "Склеить". Выбираем результирующий формат ECW, определяем папку куда сохранять файл с картой и имя файла, выбираем слой наложения (Гибрид (Wikimapia)) и ставим "галку" напротив ".map" в окошке "создать файл привязки". Начинаем и получаем результат! - два файла с одинаковым нами заданным именем и расширениями .ecw и .map.

Если позднее захотим изменить имя карты, нужно открыть в текстовом редакторе файл с расширением .map и, найдя в верхних строках прежнее имя файла карты, заменить его на новое.

Хотя карту формата ECW понимает OziExplorer (Андрозик не понимает и это ему не вредит), ее следует преобразовать в форма OZF. Этот формат быстрее загружается в оперативную память мобильного устройства навигации, лучше масштабируется и при этом меньше грузит процессор. Правда размер файла карты при этом несколько увеличивается, так как в нем хранится целый ряд копий карты с разными масштабами.

Шаг 2: Преобразование формата карты из ECW в OZF при помощи Img2ozf

Сама эта процедура очень простая. Главное использовать нужную вам версию приложения Img2ozf.

Дело в том, что создатель OziExplorer закрыл формат последних версий ozf3 и ozf4, применив шифрование потоковым шифром RC4, исключив тем самым совместимость карт новых форматов как  с разработками конкурентов, типа Андрозик, так и с более старыми версиями OziExplorer. 

Итак, если вы купили или где-то нашли последнюю версию OziExplorer для Андроид, и Андрозик вам не интересен, скачивайте последнюю же версию Img2ozf с официального сайта создателя Ози и получайте карты в формате ozf4 (как это делать описано ниже).

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

Если же вы планируете загружать ваши карты в Андрозик, то вам обязательно нужно иметь более старую версию Img2ozf и делать карты открытых форматов ozf2 или ozf3 (ozf3 до применения RC4).

Создатель приложения Андрозик рекомендует использовать формат ozf2. В отличии от ozf2, файл карты формата ozf3 содержит другой набор предварительно масштабированных карт - только сильно масштабированные (25%, 10%, 5%, и т.д.), против более широкого ряда масштабированных карт в ozf2 (80%, 70%, 60%, и т.д.). Наиболее вероятная причина данного изменения - возросшая средняя производительность мобильных устройств и желание сократить размер файлов карт. Кроме того, все карты ozf3 закодированы, что создает дополнительную (и не нужную) нагрузку на процессор и аккумулятор. В целом, как пишет указанный автор, нет никаких преимуществ для использования формата ozf3 вместо ozf2.

Если по каким-то причинам вы хотите конвертировать карты в формат ozf3 без RC4 - формат доступный для Андрозик, то вам следует использовать Img2ozf версий 3.00 - 3.06 включительно. А если вы согласитесь с рекомендацией остановиться на формате ozf2, то используйте Img2ozf версий не старше 2.08 включительно.

Нужные версии Img2ozf можно довольно легко найти в интернет, что я и сделал. Проверил антивирусом и установил у себя на компьютере. Обе установились, открывались, только при установке без "настольного" Озика - OziCE, с картами формата ECW не работали! Требовали библиотеки dll. Вообще то у меня есть OziCE, но хотелось решить вопрос в принципе, тем более, что особого смысла в наличии OziCE я не вижу. Вопрос решился поиском и записью в соответствующий установочный каталог нужных dll. Попутно оказалось, что инсталлировать Img2ozf вовсе не обязательно - получились portable версии.

Вы можете найти в конце данной статьи и скачать бесплатно и без регистрации, как инсталлируемые версии Img2ozf версии  и Img2ozf версии 2.08, работающие при установке в одну папку с OziCE, так и их портабл-версии, нуждающиеся только в распаковке каталога с приложением.

В интернет вы часто можете встретить карты, представляющие из себя изображения формата JPG или GIF. Они предназначены для "большого" (т.е. PC) Озика - OziCE. Их то же можно конвертировать в формат OZF при помощи Img2ozf.

После этих обширных комментариев даю краткую инструкцию по конвертированию карт в формат OZF при помощи Img2ozf (в скобках - отличия для версии 3.03).

  1. В Source Image Folder и Map File Parth (Source Map Folder) укажите каталог с картами. Туда же по умолчанию будут помещены конвертированные карты.
  2. Заполните Temp File Folder (в версии 3.03 находится на вкладке Configuration). Данные по всем каталогам и прочим параметрам сохраняются в ini файле, так что можно просто поправить его в текстовом редакторе.
  3. Если в списке карт ничего не видно, жмем стрелку обновления списка карт.
  4. В списке карт выберите одну или несколько подлежащих конвертации (как обычно, используем Ctrl или Shift для выделения нескольких).
  5. Проверьте отсутствие флажка Include Image Path, иначе полный путь к конвертированному файлу с картой (файл, содержащий изображение) будет включен в файл с расширением .map. Если забыли это сделать, то убрать из map-файле ненужный путь можно открыв файл текстовым редактором и поправив третью строку.
  6. Проверьте, что Initial Resize установлен на 100% - не будем ухудшать качество изображения.
  7. Возможны следующие установки Number Colors:
    • если флажок снят, то по умолчанию изображение карты конвертируется в 256 цветов. Всегда выбираем этот вариант для спутниковых снимков;
    • при установке флажка и значении 48 качество изображения карт, похожих на "бумажные" (такие как Яндекс-карты или сканированный генштаб), изменится не критично - это значение установлено по умолчанию. Обратите внимание - мы делаем карты для себя и вместо ухудшения их качества можем, при необходимости, просто сократить область покрытия;
    • при выборе значения от 48 до 8 цветов качество изображения будет постепенно ухудшаться:
      • при 8 оно будет очень плохим;
      • 32 цвета считается компромиссом между качеством изображения и размером файла.
  8. Жмем Process Image Files to OZF2 Files (Convert Maps).
  9. Если остались вопросы, жмем ? (? Help) и читаем справку :)

На этом пока все. В следующий раз я расскажу о записи треков и путевых точек, а так же об их редактировании. Успехов!

Похожие статьи:

Copyright © 2015 Maxim Bondarenko