Привет 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 тоже читает эту статью — респект за отличный продукт.

Комментарии (69)


  1. staticlab
    26.08.2017 14:46
    +5

    Если нужен оффлайн, то, кажется, лучше и проще будет использовать Maps.me.


    1. DmitrySpb79 Автор
      26.08.2017 14:57
      +1

      Спасибо, сравню на досуге.


    1. smartgrinder
      26.08.2017 14:58
      +6

      Или OsmAnd. Но ни то ни другое не поддерживает растровые карты, не смотря на то, что они уже почти совсем потеряли актуальность.


      1. petropavel
        26.08.2017 18:59

        OsmAnd поддерживает. В меню, в разделе «плагины»:

        Online maps: With this plugin you can access many times of online (so called tile or raster) maps… Tile maps… can be prepared for offline use ...


        1. qbertych
          27.08.2017 14:11

          Ну наконец-то. Все же память телефона — более дешевый ресурс, нежели мощность процессора. А OsmAnd с векторными картами любит подтормаживать, особенно когда он нужен — во время вождения в незнакомом городе, например.


  1. andreymal
    26.08.2017 14:52

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

    Почти всё перечисленное есть в вышеупомянутом MAPS.ME :) Только запись трека там не видел (есть только «недавний путь»), но нужность этого простому пользователю сомнительна


    1. DmitrySpb79 Автор
      26.08.2017 14:56
      +1

      Как подсказывает google play, оно еще и с рекламой :)

      А так, спасибо, как-нибудь попробую.


      1. nikolay_karelin
        27.08.2017 01:41

        Реклама очень ненавязчивая — типа ссылок на booking.com


    1. staticlab
      26.08.2017 15:00

      Недавний путь, судя по справке на сайте, можно конвертировать в GPX-трек.


    1. DmitrySpb79 Автор
      26.08.2017 19:48
      +3

      Ладно бы только трек, посмотрел сейчас этот maps.me — программа для навигации, не показывающая даже скорость (или я плохо искал?), это весьма странно. Уж про высоту и количество спутников молчу…

      Впрочем посмотрел копирайт — © mail.ru, все понятно :)


      1. andreymal
        26.08.2017 19:57

        И правда, странно. Но всё-таки пост сосредоточен именно на оффлайн-картах и точках интереса, которые тут таки есть, а скорость, высота и спутники нужны далеко не каждому (мне вот не нужны, раз я даже не заметил их отсутствия :)


        Кстати, исходники maps.me открыты, евпочя ;)


        1. DmitrySpb79 Автор
          26.08.2017 20:05

          Они не то чтобы совсем-совсем необходимы, но все-таки бывает интересно, в самолете например.

          Или вот недавно ехал на поезде из Парижа поездом Thalys:

          Скриншот


      1. chersanya
        26.08.2017 20:10
        +1

        Скорость maps.me показывает — нужно нажать на стрелку, обозначающую себя. Там же и высота будет. Ну и насколько я знаю, их не с самого начала мейл разрабатывает, хотя рекламу конечно именно они добавили.


        1. DmitrySpb79 Автор
          26.08.2017 20:12

          Спасибо. Нажал, показало только координаты впрочем, без скорости и высоты.


          1. aik
            27.08.2017 00:44

            А вы двигаетесь или на месте стоите?


            1. ChiefMate
              27.08.2017 01:50
              +1

              Даже если стоять на месте, в режиме навигации maps.me (по меньшей мере, вариант для Андроид) показывает скорость

              (внизу слева)
              image


          1. chersanya
            27.08.2017 02:06
            +1

            У вас, видимо, GPS не поймался — то есть, координаты определены другим образом. По крайней мере у меня получается, что показывает скорость и высоту когда есть GPS, что логично.


      1. immaculate
        27.08.2017 05:12
        +1

        Скорость показывает и записывает треки OsmAnd. Но для записи треков предпочитаю использовать osmo.mobi.


      1. qbertych
        27.08.2017 14:05
        +2

        Помнится maps.me не позволял выбирать пункт отправления — только текущие координаты. Мол, это же приложение для водителей, зачем выбирать? Сел и поехал.


        Зато на следующий день после установки он прислал поздравления с днем без автомобиля — двадцать с лишним уведомлений на двадцати с лишним разных языках. Более фееричного способа сказать "удали меня и никогда больше не устанавливай" мне, честно говоря, еще не встречалось.


        1. nikolay_karelin
          27.08.2017 14:19

          Совсем недавно пользовался опцией прокладки маршрута без привязки к текущему месту — все ок. И поздравлений у меня никогда не было… Может вам посчастливилось не в ту выборку A/B тестирования попасть?


  1. Monoroch
    26.08.2017 15:40
    +6

    А ещё есть OsmAnd для оффлайновой навигации и картографии.
    Без кучи свистоплясок с подготовкой карт.


    1. Diam77
      26.08.2017 21:10

      Но бесплатно там можно только 7 раз загрузить карты. Потом платно.


      1. Monoroch
        26.08.2017 21:47

        Он настолько много может, что многократно окупает свою копеечную(для навигатора) цену.


      1. mistergrim
        27.08.2017 02:57

        Платно — это для ленивых. Вручную можно загрузить сколько угодно (и автор не скрывает эту возможность).


      1. Self_Perfection
        28.08.2017 11:54
        +2

        Кроме ручного подкладывания файлов карт можно скачать из F-Droid версию, которую они сами собирают из исходных кодов. Функционально она эквивалентна купленной сборка OsmAnd из Google Play.


        И вообще, вам серьёзно жалко дать пару сотен рублей разработчикам чертовски функциональной программы, которые не зажмотили выложить исходный код?


        1. Diam77
          28.08.2017 12:11
          +2

          Мой пост всего лишь напомнил тем, кто не знает, о факте 7ми бесплатных картах. Там не говорилось, что "я сам использую OsmAnd", и что "плохо, что на платная", и что "она слишком дорогая".
          PS Раз уж перешли на личности, то я пользуюсь аппаратным Garmin Oregon + OSM. Да, их (OSM.img под Garmin) дают бесплатно, без деления на "ленивых" и "не ленивых". Да, OsmAnd не пользуюсь. Нет, не делал для себя вывод, оправдана ли цена OsmAnd, или нет. Были случаи, когда я донат переводил, равно как и случаи, когда даже рубля жалко. Об OsmAnd у меня нет мнения ни хорошего, ни плохого пока что.


  1. Mato
    26.08.2017 15:59
    +2

    Да, были времена. Попробуйте OruxMaps и забудьте уже об этих странных манипуляциях.


    1. DmitrySpb79 Автор
      26.08.2017 16:09
      +1

      Спасибо, добавил в список :)


  1. UksusoFF
    26.08.2017 17:54

    А 7ways не пробовали?


    1. DmitrySpb79 Автор
      26.08.2017 20:00

      Спасибо, добавил в описание. Лично не пробовал.


      1. UksusoFF
        26.08.2017 20:25
        +1

        Тут вопрос смотря для чего нужно. Еще 2гис туда же если он есть в нужном городе.


  1. aik
    26.08.2017 19:14

    Locus — он вам сам гуглокарту скачает. Или яндекс. Или osm. Или ещё какую фигню. Хотя можете и ручками туда что-нибудь подсунуть.
    Правда я последние несколько лет на maps.me перешел, локус по старой памяти иногда используется или для какой-нибудь дыры, в которой до сих пор по генштабовским картам лучше ориентироваться.


    1. Markscheider
      28.08.2017 12:01

      Подтверждаю. Пользуюсь связкой Locus + OSM давно и успешно. Оффлайн и онлайн.
      Особо отмечу возможность импорта/экспорта точек и треков. И самое важное для меня — предварительное прокладывание трека. Это когда перед прогулкой тыкаешь пальцами в карту, отмечая точки, по которым потом пойдешь. Позволяет сразу прикинуть длину маршрута, что (лично для меня) очень важно.


  1. alexeymrkn
    26.08.2017 19:43
    +3

    А ещё для этого можно использовать Google Maps.
    Скриншот из справочного раздела Google Maps


  1. FGV
    26.08.2017 19:43

    googlemap & osm это хорошо. а есть ли ресурсы с подобными морскими картами?


    1. izobr
      27.08.2017 10:31

      У OsmAnd есть плагин для морской навигации. Я не моряк, так, что не знаю, на сколько он подходит, но если включить, то рисует совсем необычный для простого человека вид карты.


    1. leggiermente
      27.08.2017 10:32
      +2

      В OSMAnd есть плагин морские карты (OpenStreetMap не карта, а геоданные), правда бедные.


      Переплюнуть Navionics тут трудно, но там и карты дорогие.


    1. encyclopedist
      27.08.2017 14:57

      https://opencpn.org/ но он для десктопов


      http://openseamap.org для любой программы куда можно подключать растровые карты


  1. GrisGreyler
    26.08.2017 19:43
    +1

    Зачем такие сложности? Всю эту кучу действий по добыванию офлайновых карт Google заменяет пункт меню «Офлайн-карты» в официальном приложении Google Maps. Соответствующий раздел справки: support.google.com/maps/answer/6291838


    1. DmitrySpb79 Автор
      26.08.2017 19:46

      Пробовал как-то, отображается только карта, больше ничего оффлайн не работает.

      А еще есть забавный баг — они используют только компас для отображения направления, в итоге в 90% случаев он работает криво (например в транспорте, где много металлических частей), и стрелка на карте «едет» боком или задом. Видимо проф.решателям олимпиадных задач невдомек, что еще 20 лет назад gps-приемники выводили указатель направления исходя из разности координат.


      1. MiXei4
        26.08.2017 21:51
        +1

        Навигация оффлайн работает, конечно без учёта пробок.

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


        1. TRIMER
          27.08.2017 12:45

          Не раз было, что стрелка боком. Это даже забавно. Как будто валишь на машине боком. Ещё бывает стрелка указывает, что едешь не по дороге, но это проблема карт похоже, так как всегда в одних и тех же местах.


      1. Tangeman
        26.08.2017 21:55
        -1

        В оффлайне в современной версии Google Maps есть как минимум POI и информация по ним (время работы, телефоны etc).

        В режиме навигации есть возможность скачать всё по маршруту в оффлайн — навигация будет работать и без сети. Также в режиме навигации направление показывается как нужно, только в свободном режиме используется компас (при стоянии на одном месте GPS ну совсем никак не укажет направление).

        А если компас откалибровать (даже в транспорте) и не менять существенно положение телефона (не приближать к металлическим частям), то всё будет корректно отображаться.


  1. alsvr
    26.08.2017 19:44

    Уже 4 года пользуюсь Gallileo, сейчас она доступна и под Android. Мне кажется это лучшая оффлайн карта. И запись треков присутствует.


    1. DmitrySpb79 Автор
      26.08.2017 20:08
      +1

      Спасибо, добавил в список.


  1. x893
    26.08.2017 20:18

    Наверное что-то сместилось у меня в голове, но не очень я понимаю как программа для рисования офлайн карт (без самих карт) может в apk занимать 60 МБ (MAPS.ME), в сорцах 1 ГБ ?!!!
    У меня на .NET такая же программа (из GMap.NET) — в установленном виде занимает 5 МБ.
    Androzic еще можно понять — 1МБ кода и 23 МБ картинок.
    Это просто замечание — даже не вопрос (наверное в Андроид байт за 4 идет).


    1. staticlab
      26.08.2017 22:54
      +3

      То есть вы скачали исходники, посмотрели их размер, но поленились даже проверить, что именно занимает в них столько места?


      280 Мб занимают границы стран и регионов. 226 Мб занимают фреймворки для iOS. 162 Мб занимают исходники плюсовых библиотек, такие как Boost, ICU и т.д. 72 Мб занимают компиляторы шейдеров (там, в основном, бинарные библиотеки). А ещё на каждый отдельный модуль есть юнит-тесты. Вот гигабайт и получается. А что именно вам в этом не нравится?


      1. x893
        27.08.2017 00:07

        Да мне как бы без разницы. Просто мне дедушка рассказал, как он карты рисовал для МО на компьютере с 56КБ и примерно также выглядело всё (когда я ему показал). А когда им генералы дали с 256 КБ — радости не было границ. Правда на мониторе 512х512 точек. Но цветных. Но карты были на жестком диске — 5 МБ


  1. dicto
    26.08.2017 21:13

    До сих пор пользуюсь Google MyTracks, хоть оно уже и не поддерживается и иногда подлагивает. В принципе, устраивает — треки пишет, скорость есть, расстояние и т.п.


  1. MOPOH
    26.08.2017 22:12

    Как-то игрался с заливкой генштабовских километровок в автомобильный навигатор с помощью программы sas4wince. Тоже с помощью Сас.Планеты подготавливал. Там можно было не только карты заливать, но и слои. Для андроида есть SAS4Android, но с ним я не работал.


  1. qwertyqwerty
    26.08.2017 22:35

    Что такое тайтлы?


    1. staticlab
      26.08.2017 22:55

      Очевидно, тайлы :)


  1. kirillaristov
    27.08.2017 08:38

    Пока работаешь с подобными программами с микрорегионами — все нормально, но когда нужна, например, вся Сибирь или вся Россия, то тут начинают вылезать фокусы и в Сас.Планета и в тех прогах, куда экспортируется кэш.


  1. pfg21
    27.08.2017 11:59
    -1

    Шел 2017 год, люди продолжали кататься на конных телегах


    1. Vitalley
      27.08.2017 15:48
      +3

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


    1. iig
      28.08.2017 12:14
      +2

      Есть места, где гуглокарты бесполезны чуть более чем полностью. Горы, леса… OruxMaps помогает.


      1. pfg21
        28.08.2017 15:42

        как будто трудно накачать кеш тайлов карт, спутник.снимков в саспланете и экспортнуть в кеш османда, орукса, локуса, алпины и т.д.
        ограничение только в 4 гб для фат32-карточки памяти, если переформатнуть в ext* то размер неограничен. сколько вариантов тайловых слоев влезает в современную карточку не описать.

        интересующие места лесов и гор потихоньку отрисовываю в осм и кроме векторной карты еще получаю и поиск и роутинг и много чего другого.
        растр давно уже использую попутно.


        1. iig
          28.08.2017 18:48

          Скачать привязанную к местности готовую генштабовскую карту проще, чем делать ее самому. Но если поделитесь толковой инструкцией — буду благодарен.


          1. pfg21
            29.08.2017 12:03
            +1

            С этим абсолютно согласен — аднрозиком пользуются только потому что к нему есть огромное количество ozf файлов. на этом плюшки заканчиваются.
            посмотри в саспланету сколько генштаб-слоев там подключено начиная от ГГЦ 250 м/см.
            к сожалению огромная часть генштаба, раздаваемая Гарлом, накрылась, бекапов к ним не было :( потому сейчас генштаба меньше.

            берем картинку, привязанную в озике, открываем в глобал маппере, сохраняем в тайлы, можно напрямую в rmaps или mbtiles и кидаем на телефон.


  1. jaguarrus
    27.08.2017 14:20

    Mapy.cz для городов. Зум реализован бесподобно.
    Ну и osmand, конечно.
    Зачем этот цирк из статьи — не понял.


  1. jawaharlalnehru
    27.08.2017 17:40

    Есть MapFactor совершенно бесплатный с картами OSM, с обновлениями и всем прочим


    1. hawkery
      29.08.2017 11:16

      А как же приписка внизу «Есть реклама · Есть платный контент»? Галлюцинации?


      1. jawaharlalnehru
        29.08.2017 15:12
        +1

        Вся реклама ограничивается тем, что раз в несколько запусков Вам предлагается использовать платные карты Tomtom вместо OSM. Они же и есть платный контент. Но это никак не ограничивает бесплатное пользование программой. Просто один раз в несколько запусков нажимаем «Нет, спасибо» и пользуемся бесплатно всеми фишками без ограничений.


  1. ClearAirTurbulence
    27.08.2017 18:26

    мало ли оффлайновых навигаторов с рутингом, давайте ещё чего-нибудь откопаем. это ископаемое с отвратительным интерфейсом имеет смысл только, если вам нужно использовать эзотерические растровые карты. в остальных случаях удобнее навителы, айгоу, here wego итп.


  1. evnp
    27.08.2017 19:39

    Androzic забыт более чем заслуженно, автор в личной переписке сказал буквально следующее: «когда количество нареканий, что Андрозик не может прочитать карты, превысило определённый порог, я решил окончательно отказаться от его поддержки». Меня отсутствие поддержки не смущало до тех пор, пока на моем новом устройстве Androzic тоже не прочел ozfx3. Нужен был мне именно растр (а точнее ГГЦ), поэтому я взял себя в руки и наконец научился изготавливать растровые топографические карты в съедобном для OsmAnd виде с помощью mobac.sourceforge.net (ничего сверхъестественного там нет, самым сложным было добавить интересные мне слои вместо штатных — но это прекрасно документировано и есть примеры)


  1. mazayats
    27.08.2017 22:58

    Пользуюсь андрозик уже лет 5, в т.ч. именно так, как написано. Для своих целей — отличный инструмент. Мне принципиально чтоб приложение для навигации умело работать с форматами Ozi, т.к. 90% случаев, когда мне нужна навигация, мне нужны карты в этом формате. Андрозик — одно из немногих приложений, которые это умеют. Генштаб, карты начала-середины 20 века, карты 19 века — все отлично привязывается в Ози и отлично идет на Андрозике. Онлайновая навигация для е-ней, где нет связи, не подходит никак. Насчет интерфейса — ИМХО, он лучший среди подобных приложений. В Ози под андроид интерфейс гораздо хуже. Так что зря выше его ругают. Все что нужно — переключени между картами, поставить точку, включить запись трека — все есть и удобно. Особенно удобно переключение между разными версиями карт одной местности для сравнения. Поставил точку на трехверстовке, переключился на генштаб, доехал, переключился на спутниковый снимок, сделаный в том же САСпланет. В общем, также очень благодарен автору.


  1. igor_kuznetsov
    28.08.2017 16:37

    Тут много про альтернативы написали, так вот

    Maps Me — это тихий ужас, который постоянно глючит с ориентацией и по ПРЯМО дороге он может перевернуть карту раз 10. Именно по этой причине я как то на Корфу уехал черте куда ночью в горы.Зато быстро работает!

    OsmAnd -лагодром и тупейший gui интерфейс. Вы там попробуйте быстро отменить маршрут и сделать новый, ха

    Самый лучшие пока вариант — это гугл карты с офлайном. Да даже яндекс навигатор адекватней чем все эти офлайн поделки


    1. set
      28.08.2017 17:24

      Maps Me — это тихий ужас, который постоянно глючит с ориентацией и по ПРЯМО дороге он может перевернуть карту раз 10. Именно по этой причине я как то на Корфу уехал черте куда ночью в горы.Зато быстро работает!

      Когда начал пользоваться — очень понравилась эта прога. Не очень нравилось только то, что маршрут предлагает всего один и зачастую далеко не оптимальный. Ну и если промахнулся с поворотом, то довольно долго думает, прежде чем перестроиться, хотя в остальном действительно очень шустрая софтина и приятная на вид, в отличие от многих других.
      Но вот недавно ехал пассажиром в машине и параллельно водительскому гуглмапсу решил запустить у себя мапсми этот… Программа нашла нужный адрес и проложила правильный (ну, визуально) маршрут, но вместо 4 часов пути показывала чуть больше часа, а потом всю дорогу периодически кричала что-то типа «резко поверните налево», когда поворотов не было и не могло быть в принципе (мчали по трассе А4 почти всю дорогу, а там поворотов налево не может быть никак, всё через съезды вправо). В общем, неприятно удивился и разочаровался в мапсми :(


      1. igor_kuznetsov
        28.08.2017 18:01
        +1

        А ведь то ли тут толи на харбе у них был блог… вроде статья была про прокладку как раз. Видимо им не хватает тестирования