Привет Geektimes! Период отпусков уже подходит к концу, однако дальние поездки и дальше остаются актуальными. Сейчас «стильно модно молодежно» пользоваться различными онлайн сервисами, однако еще с тех пор когда gps-приемники были большие и желтые, старые добрые оффлайн-карты не утратили свою актуальность — в поездках зачастую интернет либо отсутствует, либо дорогой, либо неудобный. Да даже в домашнем регионе не всегда подключен мобильный интернет, зачастую он просто не нужен чтобы за него отдельно платить. А gps есть практически в любом смартфоне, и ничего за его использование платить не нужно.
Я расскажу как готовить оффлайн-карты для незаслуженно забытой программы Androzic, программы которой я пользуюсь более 5 лет, и которую использовал во всех поездках, от Парижа до Соловков.
Вот так выглядит карта на моем смартфоне с Android 7.0:
Как это сделать, немного цифровой археологии под катом.
Программа Androzic
Для начала нужно поставить данную программу. Скачать ее можно с одноименного сайта, программа совершенно бесплатна, там же на сайте есть ссылка на исходники на github. К сожалению, автор прекратил разработку программы, однако все и так работает — программа делает то что нужно, и не делает что не нужно. Я использую версию 1.7.9, с 2.3 что-то не срослось, а разбираться было лень. Так что дальнейший рассказ будет про 1.7.9.
Итак, загружаем с сайта apk, устанавливаем на Android. Программа предоставляет все, что необходимо для оффлайн-навигации — карты, точки, вывод расстояния, скорости и пр (разумеется, онлайн-сервисов типа показа пробок, в программе нет).
В комплекте с программой карт тоже нет, так что подготовить их придется самостоятельно. Приступаем к цифровой археологии — нам понадобятся программы, которые использовались лет 10 назад :)
Загрузка карты
Для начала нам необходимо создать карту в формате OZI Explorer. Перепробовав разные программы, я в итоге остановился на SAS.Planet. Программа бесплатная, с ее помощью можно сохранить карту в любом удобном формате. Для примера, создадим карту Москвы.
Выделяем нужную область, выбираем нужный зум (z15) и нажимаем Start — программа скачивает с карт Гугла все тайлы (не знаю насколько это разрешено политикой гугл, но для личного использования думаю, можно).
Открываем предыдущее выделение еще раз, выбираем Stitch и скачиваем карту в формате jpeg (выбран тот же зум=15 и включен флажок «map» для создания файла формата ozi).
Результат — в выбранной папке должны появиться 2 файла — Moscow.jpg (размером примерно 7000х7000 пикселов) и Moscow.map. Теперь наша задача сконвертировать карту и установить на смартфон.
Конвертация карты
Следующим шагом необходимо сконвертировать карту в формат, который понимает Androzic. К сожалению, сохраненные выше файлы напрямую не открываются, карту сначала нужно сконвертировать в формат ozfx3. Для конвертации я использовал программу Img2OZF 3.0. Более поздние версии не подходят, т.к. создают файлы уже в другом формате ozf4 (скачать версию 3.0 удалось отсюда, т.к. официальные ссылки давно мертвы). Если кто знает другой конвертор, было бы интересно.
Пользоваться программой весьма просто — выбираем папку, нажимаем Convert.
Программа создает слои карты для разных уровней зума, через некоторое время карта готова. Как результат, в выходной папке созданы 2 файла Moscow.ozfx3 и Moscow_ozf.map.
Загрузка в смартфон
Последний и самый простой этап. Подключаем смартфон по usb, и копируем оба файла в папку /Androzic/maps. Перезапускаем Androzic — все готово, новая карта видна в списке, и ее можно открыть.
При желании, в Androzic также можно занести список интересных точек, и программа будет показывать их на экране. Hint — если в google maps выбрать в контекстном меню пункт «что это», будут показаны координаты в виде широты-долготы, их и надо вносить в программу.
Результаты
Что мы получили в итоге? Мы имеем бесплатную программу, показывающую на смартфоне наше местоположение, карту, скорость, координаты, список интересных точек, записывающую трек движения, причем все это полностью оффлайн, без какого-либо использования траффика или gsm-сети вообще. Без рекламы, регистраций и sms. В поездке в роуминге/за границу, или даже в самолете, посмотреть где сейчас летим, то что доктор прописал.
Правка
Как подсказали в комментариях, существует несколько альтернативных программ, работающих полностью оффлайн, и не требующих конвертации карт.
Maps.me
OSM Maps
OruxMaps
Locus
7Ways
Galileo
Всем удачных путешествий. Если автор Androzic тоже читает эту статью — респект за отличный продукт.
Автор: DmitrySpb79