Q: android + растровые карты

Я уже задавал этот вопрос, но забыл ответ, да и время прошло с тех пор.

Есть:

  • 10" планшет Galaxy Tab (не знаю какой версии, не у меня, давайте считать что самый старый и самый дохлый).
  • Растровые карты (исходно - с привязкой Ozi, можно сконвертировать, не проблема)

Хочется: получить из этого навигатор. С треками (идеально, если можно GPX грузить), блекджеком и всем что положено.

Какой софт ставить? Хочется счастья в полной мере, скажем чтобы нужные листы сам умел подсасывать при перемещении.

И, да, в какой формат конвертировать? Скажем, если район большой, могу я лист километровки (144 листика) склеить в один файлик (ну там GeoTIFF) или лучше отдельными гифками?

UPD: возможность "скачивать карты в онлайне" не интересует вовсе. То есть совсем. Картография готовится заранее.

Comments

Locus Map https://play.google.com/store/apps/details?id=menion.android.locus.pro
Есть дармовая версия, какие у неё ограничения не знаю, никогда не использовал.

Прямо изнутри можно выкачать нужные карты заданного района до заданной детализации. Некоторые карты выкачать нельзя (OSM), у тех, которые можно ограничение 10к тайлов в сутки.

Дополнительно https://play.google.com/store/apps/details?id=com.mjk.locusmaptweak добавляет пачку источников карт.

Так же можно туда приделать векторные карты, но детализация того, что есть, может быть не очень.

Забыл добавить.

Пишет треки, открывает gpx/kml и показывает их.

OziMapper - это "загрузка из онлайн-источников для Androzic"?
То есть рекомендация - Androzic

Я ничего пока не смотрел, пока вот рекомендации собираю.

Androzic нормальная программа, примитивная, но юзабельная. GPX поддерживается.

А ничего не надо особого.
Вопросы
а) оптимальный формат? GIF+MAP или GeoTIFF или ?
б) сожрет ли большие листы или надо резать (не клеить)
в) умеет ли само подгружать нужный лист исходя из текущего положения?

a) - как у мобильного ози - ozf2 что-ли или ему подобный. Это большие компы могут легко ворочать простыни гифов/тифов, а наладонники от этого "потеют" слишком.

в) вроде умеет

б) У меня проблем особых не было, кроме тормозов. Но и девайс был слабый.

Угу. Есть ещё OruxMaps, но оно вроде бы напрямую озишный формат не читает, только после своего конвертера.

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

Androzic в последней своей версии не очень стабилен. А так - лучшее, что есть. Карты я вытягиваю SAS Planet и конвертирую img2ozf версии 3.03

Androzic + Ozi for Andoid, небольшие различия есть.

не скажу про растровые карты

пользуюсь LocusPro позвыоляет использовать куччу разных онлайн карт (гугл, яндекс, OSM,..), большинство из которых скачивается оффлайново бесплатно, про платное оффлайн скачивание - как-то 2 года назад заплатил 10 или 5 евро и до сих пор не истратил.
+ векторные карты которые доступны в инете для навигаци вгороде, на трассе достаточны.

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

пишет треки, ставит точки, к точкам привязывает фото и видео, есть органайзинг всего

У меня работало на старом планшете с 500мб оперативки... но где-то год назад переполз на более толстое/быстрое возможно за это время программа потолстела и зажралась, не знаю.

Есть Ozi explorer для Андроида (есть тема на форуме 4pda), но он у меня что-то так и не работает толком.
Вот)

Так есть Ozi под андроид)

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

Он вроде платный. Посоветуешь людям (это ж не мне!) - а окажется говном. Говно за деньги - вдвойне обидно!

если качать с 4Pda то бесплатный. Работает. Сам пользуюсь.
В основном карты 100к загружены на свой регион. Штук 50.

upd: уже в принципе выше все расписали. И глянул таки он безплатный.
Вот описание http://4pda.info/news/26687/

Androzic бесплатен. 8=-)

ищи rmaps
его на сторе уже нет, но на 4пда ещё лежит
пожалуй это лучшее, что есть под Андроид

OsmAnd+
монстроидальный, плохо документированный, сложный в настройке проект.
Но умеет все: вектор и растр (в том числе и одновременный показ вектора поверх растра), роутинг по вектору, онлайн и полный офлайн, включая роутинг; треки, POI, фоновый режим...
Для вектора используются OSM, в принципе это уже самодостаточное решение; раст надо конвертить в .sqlitedb, конверторы есть.
Короткое описание возможностей на хабре: http://habrahabr.ru/post/124295/

На самом деле, после непродолжительного использования OsmAnd он будет казаться простым и логичным, и ни на что другое уже не потянет.
OsmAnd+ - платная
OsmAnd - бесплатная с немного урезанными возможностями. Себе купил "+" не задумываясь.

Вот к примеру скриншот, полупрозрачный вектор поверх куска километровки ГШ, и включенный слой POI с заправками:

Оптимальный формат - rmap или MBTiles. Это тайлы TMS, хранящиеся внутри базы SQLite.
Поддерживается это разными вариантами софта, лично я для волонтерской работы в заповеднике использую OruxMaps http://www.oruxmaps.com/manual_en.html Все данные готовлю в GlobalMapper, но эти форматы делаются много чем еще.
Технически, аналогичное приложение можно довольно легко собрать на JS под browser, используя Leaflet с плагинами (это я говорю, как человек, который на JS, строго говоря, не пишет, так что уровень сложности задачи можно себе представить), единственное, что нужно будет вынести из него - запись треков.

Вопросы у меня

1) Поддерживается ли многоуровневый зум на уровне формата? То есть можно ли 10,5,2,1,0.5-километровки запихать в один файл? Прочитал ман (кусочек) на OruxMaps, многослойное поддерживается, как их делать?

2) Что-то я в GlobalMapper 14 не вижу экспорта в эти форматы, обновляться до 15?, все в 15-м увидел.

Честно говоря, я не делал многослойные никогда, но контейнеру все равно, что хранить в разных слоях, это же картинки, так что ответ - да, поддерживается.
Если не устроит просто сделать экспорт в два (или более) файла на одну территорию с разными уровнями, то можно попробовать разные способы: а) указать в GM масштабы видимости для слоев и попробовать сделать экспорт в таком виде; б) поскольку и то и другое - файлы БД SQLite, думаю, программисту не составит труда написать один SQL-запрос чтобы слить их вместе, главное сохранить постоянный экстент (я хреновый программист, но думаю, справился бы тоже).
Есть еще конвертеры, которые умеют работать с форматом - http://mobac.sourceforge.net/ http://accounts.arc2earth.com/docs/tilecaches

А, вот еще пара моментов: фиг его знает, какие оно поддерживает проекции и, как я понял из мануала (полез почитать первый раз) - можно включать и выключать карты целыми подкаталогами. По поводу проекций - я делаю все в Web Mercator.

Ну вот докладываю
1) У текущей версии есть "выбор проекции карты" и там даже Пулково-1942 есть
2) Взял карту москвы 50к, очень старую, улицы в моем углу немножко недорисованы :)
Просто экспортировал ее в mbtiles (в Global Mapper не менял проекцию), включил приемник (все - в комнате) и то ли спозиционировался совсем точно, то ли на другую сторону улицы - понять не могу. В любом случае, этой точности мне более чем достаточно, потому что готовить под планшет я собираюсь 5-км карту, а не более крупную.

Сейчас попробую ESPG3857, посмотрим изменится ли что.

>>Сейчас попробую ESPG3857, посмотрим изменится ли что.

Карта, которая сконвертирована в WGS84 (ESPG3857) - ведет себя абсолютно так же.
Позиционируюсь туда же.

Я бы не полагался на поддержку российских проекций и древних датумов - кто знает, какие там параметры используются?
Для уверенности имеет смысл контролируемо (то есть используя определение параметров перехода из собственного PRJ-файла) перепроецировать в что-то на датуме WGS84 (или в Меркатора на сфере), просто чтобы не наткнуться на странную или номинальную поддержку своей СК. У меня вот тоже данные на датуме NAD 83 в проекции Ламберта, это МСК штата, все перегоняю в UTM или Web Mercator.

Есть более важное соображение: OruxMaps, допустим, работает правильно. Но есть и другие программы. Или еще не есть, но будут.

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

Ну как, дальний.
Я вот сейчас делаю комплект карт "от Урумчи до Байкала" в mbtiles
И уверен, что они потребуются еще много раз.

Как вот JNX-ы на тот же район.

Да уже есть. Начинал с Ozi, как только приобрел Sony Experia J. Опыт использования почти 2 года. Запихнуть в него можно все, что угодно. Из неудобств надо отметить отсутствие магнитного компаса и ограничение на объем (не в Ozi, а в программе преобразования) и некоторые другие. Откапывая карты по Непалу для водного похода, наткнулся на SAS4Android. Опыт эксплуатации около полугода. Противоречивые впечатления: удобство для спутниковых карт (это ее основное назначение), при этом довольно сложный интерфейс и отсутствие описания - только форум. (не все осиливают). Locus - интерфейс простой и понятный, полно возможностей. Опять запихнул все свои карты. Конечно есть плюсы и минусы. Единственное, что мне с налету не удалось сделать - скормить наши карты (в основном используются в лыжных походах по Московской области)http://slazav.mccme.ru/maps/podm/index.htm в векторном формате (Garmin). Хотя это и не самое актуальное, в растровом все вместилось. И тут мой взор обратился к OruxMaps. Скушал Гарминовские векторные и не подавился. Опыт использования Min. Теперь опять встает вопрос выбора между Locus и OruxMaps. К настоящему времени в приборе уже 6 навигаторов - это немного перебор. Если кто пробовал ведение по маршруту, преобразованному из трека - отзовитесь. Пробовал в Locus. Все настраивается, но подсказок не дождался. Как с этим в OruxMaps. Почему это актуально? Предварительно берется какой-либо трек и обычно ему следуют в какой то части. Для ориентирования надо освободить руку от лыжной палки, снять рукавицу, взять прибор (достать) и посмотреть. Голосовая подсказка здесь бы пригодилась. Но не в части приближения к очередной путевой точке, в по отклонению от маршрута в заданных пределах.

А вот у меня чего-то не выходит каменный цветок.

В GlobalMapper - сделал экспор в RMap sqlite format. Получился один файл, расширение sqlite
OruxMaps его не видит.

В мане у OruxMaps написано, что карта - это два файла. .db и .xml.

.XML - мне нужно ручками писать?

.db+.xml - это какие-то не те карты, это какие-то его внутренние индексы, которые трогать не надо.
У меня есть папка:
storage/sdcard0/oruxmaps/mapfiles
Чтобы оно увидело растровую карту, мне достаточно было положить туда файл, сгенерированный GM, (я использую формат MBTiles, соответственно, расширение у него *.mbtiles)
Далее в самой программе достаточно ткнуть на иконку карты в верхнем меню, выбрать пункт Switch map и на закладке Offline maps выбрать вместо World свою (по имени).
Путь к картам можно проверить в Settings.

Можете попробовать включить карту world, чтобы перейти на то место, которое покрывает тестовая карта, а потом уже переключаться.

Во, mbtiles - работает, .sqlite - нет. Счастье - соответственно есть. Экспорт, правда, невероятно медленный какой-то.

Да, GM тормоз в нарезке, это давно известный факт.

https://github.com/ecometrica/gdal2mbtiles - не пробовал, но должно быть быстрее.

Ну меня 3 часа на лист (144 странички) километровки не пугают.
Три уже сделал, время еще есть, все успею.

Меня это тоже не особо пугает, просто давно уже надо найти что-то пооптимальнее GM, а то "неаккуратненько как-то".
Вообще, мечта - это подобрать какой-то workflow, где по получившимся перед конвертированием PNG можно было бы пройтись pngnq или чем-то еще таким - память, чай, не казенная - у меня всего лишь Moto G.

Для проверки можно еще сгенерировать экстент этой карты (в GM правой кнопкой на слое, в контекстном меню что-то вроде Generate coverage area), сохранить его в KML и положить туда же - с KML никаких проблем быть не должно вообще.