Osmand — программа для Android, которая позволяет работать с офлайн картами OpenStreetMap и не только, использовать голосовую навигацию, запись, отображение и навигацией GPX треков, а также ряд возможностей по редактированию OSM. Судя по предыдущему топику , среди хабровчан достаточно большое число пользователей данной программы, которые бы хотели узнать тонкости работы данной программы.
Конечно, написание руководств для пользователей в последнее время считается плохим тоном, так как пользовательский интерфейс должен быть абсолютно понятен всем и в любой ситуации, но реальность, к сожалению, говорит об обратном. Особенно это критично, когда пользователи не понимают базовых понятий приложения или руководствуются заниженной или завышенной оценкой к его возможностям.
Osmand, как и большинство Linux приложений, предназначен, для всех, поэтому конкретную целевую аудиторию даже сложно назвать. Это является и плюсом и минусом приложения. В принципе все open source развиваются по этому сценарию, потому как сообщество постоянно добавляет маленькие и нужные патчи и редко добавляет большие и нужные. Так и получаются приложения с кучей настроек, кучей перекрывающихся функций и тысячами сценариев использования.
Кратко темы, раскрытые ниже:
Прежде всего следует отметить, что документация на русском все же существует, пусть и немного устаревшая Чаво
Существует 2 вида карт: векторные и растровые. Растровые карты — это карты, которые представлены картинками (тайлами), векторные карты — это бинарный набор данных, по которым еще предстоит нарисовать тайлы для отображения. В общем принципиальное различие в том, что растровые карты рисуются очень быстро и занимают очень много места для детализированных областей. Для примера Google Maps/Yandex maps — растровые карты, Garmin/Navitel — векторные. При первой загрузке Osmand использует растровые карты, причем подгружает их из интернета на SD карточку, потом эти карты используются. Векторные карты нужно загрузить в специальном диалоге — Настройки → Индексы → Загрузить индексы. Для того, чтобы переключаться между картами, используйте меню → Слои → Карта источник…
Растровые карты достаточно удобны, если вам критична скорость отображения и вы не хотите засорять SD карточку, имея под рукой интернет. По умолчанию, создается 2 источника растровых карт, но вы можете загрузить другие через «Установить..». В момент установки источника, создается папка на SD карточке (/sdcard/osmand/tiles/<имя источника>), куда и будут загружаться все тайлы. Удалив эту папку, программа будет считать, что источника нету. Это достаточно удобный способ составлять список источников по своему усмотрению.
Так же, существует способ для того, чтобы создать свой источник тайлов (Собственный рендеринг, WMS). Если зайти /sdcard/osmand/tiles/<имя источника>, то можно найти файл .metainfo, который и содержит всю необходимую информацию о загрузке тайлов. Более простой способ и лучший использовать OsmandMapCreator. При помощи этой программы можно выделить и загрузить интересуемую (большую) область, а затем скопировать ее на SD карточку. Загрузить большую область можно и используя Wifi на телефоне: контекстное меню → Загрузить карту. Главное преимущество использования PC для подготовки карты в том, что можно тайлы поместить в один файл (Create sqlite database), после этого скопировать файл в osmand/tiles/. Это очень важно для Flash Карт, так как большое количество файлов чрезмерно ухудшает работу файловой системы. SQlite файл так же будет догружать тайлы из интернета.
Существуют настройки для тех, кто следит за интернет трафиком (Настройки — Карта/Общие): можно отключить интернет вообще для загрузки тайлов и можно указать уровень детализации (zoom level), начиная с которого не надо грузить тайлы. Например, для автомобильной навигации вполне достаточно 14-15, так как Osmand может увеличивать тайлы в 2-4 раза соответственнов 16-17, экономия трафика очевидна :)
Для отображения векторных карт необходимо загрузить эти самые карты. На экране отобразится огромный список загрузок с фильтром, список загрузок совпадает с Downloads. Рекомендуется загрузить помимо своего региона 1) Голосовые данные и 2) Basemap (Карту мира 1-7 зум 3 Mb). Преимущество векторных карт то, что они умеют поворачиваться и поддерживают разные стили рендеринга. Стили рендеринга зависят от текущего Профиля (описано ниже), но их можно указать вручную. Можно даже создать свой стиль и поместить его в (osmand/rendering), некоторые даже создают карты с профилем высот. Так же векторные карты меняют свой стиль в зависимости от дня и ночи (можно найти в настройках) и могут транслитерировать названия в английские.
Векторные карты могут быть достаточно медленны на маленькой детализации, поэтому существует опция, перехода в растровые карты при зуме <= N. Достаточно эффективная комбинация расхода памяти и времени рендеринга.
В приложении имеется возможность использовать любую карту в качестве подложки или покрытия с необходимым уровнем прозрачности. Естественно это замедляет процесс рендеринга + тратит очень драгоценную для приложения память (может падать).
На экране карты отображаются в зависимости от ситуации индикатор скорости, индикатор времени прибытия (при нажатии индикатор оставшегося времени), индикатор детализации (зум), индикатор расстояния от центра карты до точки назначения (при нажатии переходит в точку назначения), стрелка — кнопка вернуться в текущее положение, компас (при нажатии вращает карту по компасу или отключает вращение), профиль настроек (при нажатии можно выбрать).
Точка назначения отображается на карте красной точкой с флажком, когда она не видна, то появляется красная стрелка, которая указывает направление + на экране всегда видно расстояние до нее, что является достаточно удобным при пешей навигации. Точку назначения можно выбрать через любой поиск (Идти к), иногда надо использовать долгое нажатие, или через контекстное меню карты. При прокладке маршрута точка назначения должна быть выбранной. Ее можно убрать через Меню → Снять отметку.
Контекстное меню карты — это меню, действия которого привязано к выбранной точке на карте. Можно выбрать 3 способами: нажатие трекпоинта, долгое нажатие на карте + нажатие на появившейся областе (долго нажатие скрывает область), через меню. В этом меню выбранная точка 1) может быть выбрана как точка назначения 2) может использоваться как отправная точка маршрута (только для просмотра) 3) будет отправной для поиска POI, транспорта 4) может быть отправлена другу через SMS, email 5)…
В приложение существуют общие настройки и настройки профиля. Общие настройки:
— ориентация экрана — можно установить, чтобы карта не сбивалась, когда несешь телефон в руке
— директория приложения — можно поменять /sdcard/osmand.
— локализация, единицы измерения расстояния, использование трекпоинта…
В приложении существует 4 профиля: по умолчания (обзор карты), авто, велосипед и пешеход. Все настройки выбранные в каждом профиле хранятся в нем. К примеру, для пешехода было выбрано всегда отоброжать дневной рендеринг, соответственно при смене на авто — эта настройка будет сброшена и будет установлена другая как автомасштабирование. При навигации профиль настроек меняется автоматически. Существуют настройки по умолчанию для каждого профиля, но все их можно менять и настраивать.
На данный момент карты и слои, хотя и отображаются в настройках, являются отдельными настройками приложения и не меняются по профилям.
Искать можно по координатам, по адресу, избранные, POI, транспорт и в истории поиска. Для адреса, POI, транспорта необходимы векторные данные. Можно визуализировать поиск на карте, включив необходимые слои (Меню → Слои), слой POI фильтра, слой избранных или слой транспортных остановок. Для всех поисков активны 2 кнопки, «показать на карте» и «идти к», для избранных, истории опция «идти к» появляется при долгом нажатии. Попасть в поиск можно нажав кнопку поиск на устройстве. На поиск влияет опция «показать английские имена».
Все довольно просто: выбираете регион (название векторных карт), город, улицу и т.д. Так же существует опция искать через Osm Nominatim, использует интернет и рекомендуется тем, кто знает как надо формировать запросы.
Для поиска POI применяются фильтры. Редактируемые и созданные пользователем, отображаются звездочкой, стандартные OSM — папкой. Для редактирования необходимо долго нажатие на фильтре или выбрать новый фильтр, далее через меню фильтр можно «сохранить как» или «удалить». При выборе фильтра появляются 2 опции: искать рядом с собой (потребуется время пока приложение найдет спутники) или искать вокруг последнего выбранного участка карты. Существует способ отфильтровать найденные POI по имени — кнопка меню → фильтр.
Добавить в избранные можно через контекстное меню на карте. Существует также отдельная опция «заменить», для динамических избранных, таких как машина, отель, место последней встречи в лесу :) Избранные точки можно экспортировать и импортировать (файл GPX), важно при удалении приложения и установке заново. Не рекомендуется импортировать большое количество избранных точек, лучше для этого использовать слой «GPX файл».
Поиск транспорта можно назвать также как прокладка маршрута вручную. При поиске необходима начальная точка (конечная по усмотрению), поэтому поиск транспорта доступен из контекстного меню карты. Надпись искать транспорт до цели кликабельна, в одном случае цель учитывается, в другом нет. При поиске транспорта — результаты сортируются по наименьшей сумме от старта до маршрута + от маршрута до назначения. При выборе некоторого маршрута, предлагается выбрать остановку, на которой выходить. После этого поиск будет повторен, но начальной точкой будет уже точка остановки предыдущего маршрута (Искать после). Таким образом можно построить маршрут с пересадками, но остановки пересадок придется выбирать вручную.
Фоновый сервис может быть полезен, если вы хотите отключить экран и не использовать GPS непрерывно. Фоновый сервис запускает позиционирование GPS через определенные промежутки времени и выполняет 2 функции: запись GPX трека и навигация (включая голосовую). Включить фоновый сервис можно в настройках.
Для того, чтобы проложить маршрут, необходимо выбрать точку следования, а затем Меню — маршрут. Существует 2 режима для построения маршрута: следовать (навигация) и просмотр маршрута. Посмотреть информацию о проложенном маршруте можно Меню — Маршрут — О маршруте. При выборе режима следовать — автоматически меняется профиль и маршрут прокладывается от текущего местоположения, при этом включается голосовая навигация.
Существует 3 источника построения маршрутов: онлайн источник (Cloudmade, Yours), офлайн навигация по векторным данным (нестабильная) и навигация по GPX треку. Наиболее оптимальным является Cloudmade, но требует подключения к интернету. Навигация по векторным данным находится в стадии разработки и может использоваться только на короткие расстояния и еще пока не определяет съезды на трассы/круги движения и другое. Навигироваться можно и по GPX треку, построенному, например, maps.cloudmade.com (Карта — Меню — Навигация по GPX).
Мониторинг и запись GPX файлов в /sdcard/osmand/tracks включена по умолчанию для некоторых профилей (авто, велосипед), поэтому история ваших движений хранится в GPX файлах по дням. Эти настройки можно отключить и включить для других профилей, выбрав желаемый интервал слежения.
В приложении можно просмотреть записанные треки, а также созданные другими пользователями. Для этого необходимо, чтобы GPX файлы находились в /sdcard/osmand/tracks. Включить можно через Слои — GPX, при этом все сегменты будут отображены линиями на карте, а все точки в треке будут отображены как избранные. Они также будут доступны в списке избранных, пока включен слой.
В любой момент в записываемый GPX файл можно добавить точку с описанием, сделать это можно через контекстное меню карты. Это бывает полезно для записи некоторых POI при отсутствии интернета.
P.S. Если я что-то упустил, какие-то интересные и маленькие моменты, буду добавлять в «другое».
Спасибо за внимание
Конечно, написание руководств для пользователей в последнее время считается плохим тоном, так как пользовательский интерфейс должен быть абсолютно понятен всем и в любой ситуации, но реальность, к сожалению, говорит об обратном. Особенно это критично, когда пользователи не понимают базовых понятий приложения или руководствуются заниженной или завышенной оценкой к его возможностям.
Osmand, как и большинство Linux приложений, предназначен, для всех, поэтому конкретную целевую аудиторию даже сложно назвать. Это является и плюсом и минусом приложения. В принципе все open source развиваются по этому сценарию, потому как сообщество постоянно добавляет маленькие и нужные патчи и редко добавляет большие и нужные. Так и получаются приложения с кучей настроек, кучей перекрывающихся функций и тысячами сценариев использования.
Кратко темы, раскрытые ниже:
- Карта — векторные и растровые карты, различные настройки
- Экран Карты — индикаторы на главном экране приложения и контекстное меню
- Настройки приложения — профили настроек и обзор базовых настроек
- Фоновый сервис — работа приложения с выключенным экраном и с заданным периодом включения
- Мониторинг — запись GPX треков
- Навигация — онлайн и офлайн навигация
- Поиск — поиск POI, транспорта, адреса
- OSM редактирование — POI и Osm bugs
Прежде всего следует отметить, что документация на русском все же существует, пусть и немного устаревшая Чаво
Карта
Существует 2 вида карт: векторные и растровые. Растровые карты — это карты, которые представлены картинками (тайлами), векторные карты — это бинарный набор данных, по которым еще предстоит нарисовать тайлы для отображения. В общем принципиальное различие в том, что растровые карты рисуются очень быстро и занимают очень много места для детализированных областей. Для примера Google Maps/Yandex maps — растровые карты, Garmin/Navitel — векторные. При первой загрузке Osmand использует растровые карты, причем подгружает их из интернета на SD карточку, потом эти карты используются. Векторные карты нужно загрузить в специальном диалоге — Настройки → Индексы → Загрузить индексы. Для того, чтобы переключаться между картами, используйте меню → Слои → Карта источник…
Растровые карты
Растровые карты достаточно удобны, если вам критична скорость отображения и вы не хотите засорять SD карточку, имея под рукой интернет. По умолчанию, создается 2 источника растровых карт, но вы можете загрузить другие через «Установить..». В момент установки источника, создается папка на SD карточке (/sdcard/osmand/tiles/<имя источника>), куда и будут загружаться все тайлы. Удалив эту папку, программа будет считать, что источника нету. Это достаточно удобный способ составлять список источников по своему усмотрению.
Так же, существует способ для того, чтобы создать свой источник тайлов (Собственный рендеринг, WMS). Если зайти /sdcard/osmand/tiles/<имя источника>, то можно найти файл .metainfo, который и содержит всю необходимую информацию о загрузке тайлов. Более простой способ и лучший использовать OsmandMapCreator. При помощи этой программы можно выделить и загрузить интересуемую (большую) область, а затем скопировать ее на SD карточку. Загрузить большую область можно и используя Wifi на телефоне: контекстное меню → Загрузить карту. Главное преимущество использования PC для подготовки карты в том, что можно тайлы поместить в один файл (Create sqlite database), после этого скопировать файл в osmand/tiles/. Это очень важно для Flash Карт, так как большое количество файлов чрезмерно ухудшает работу файловой системы. SQlite файл так же будет догружать тайлы из интернета.
Существуют настройки для тех, кто следит за интернет трафиком (Настройки — Карта/Общие): можно отключить интернет вообще для загрузки тайлов и можно указать уровень детализации (zoom level), начиная с которого не надо грузить тайлы. Например, для автомобильной навигации вполне достаточно 14-15, так как Osmand может увеличивать тайлы в 2-4 раза соответственнов 16-17, экономия трафика очевидна :)
Векторные карты
Для отображения векторных карт необходимо загрузить эти самые карты. На экране отобразится огромный список загрузок с фильтром, список загрузок совпадает с Downloads. Рекомендуется загрузить помимо своего региона 1) Голосовые данные и 2) Basemap (Карту мира 1-7 зум 3 Mb). Преимущество векторных карт то, что они умеют поворачиваться и поддерживают разные стили рендеринга. Стили рендеринга зависят от текущего Профиля (описано ниже), но их можно указать вручную. Можно даже создать свой стиль и поместить его в (osmand/rendering), некоторые даже создают карты с профилем высот. Так же векторные карты меняют свой стиль в зависимости от дня и ночи (можно найти в настройках) и могут транслитерировать названия в английские.
Векторные карты могут быть достаточно медленны на маленькой детализации, поэтому существует опция, перехода в растровые карты при зуме <= N. Достаточно эффективная комбинация расхода памяти и времени рендеринга.
Карты подложки и покрытия
В приложении имеется возможность использовать любую карту в качестве подложки или покрытия с необходимым уровнем прозрачности. Естественно это замедляет процесс рендеринга + тратит очень драгоценную для приложения память (может падать).
Экран карты
На экране карты отображаются в зависимости от ситуации индикатор скорости, индикатор времени прибытия (при нажатии индикатор оставшегося времени), индикатор детализации (зум), индикатор расстояния от центра карты до точки назначения (при нажатии переходит в точку назначения), стрелка — кнопка вернуться в текущее положение, компас (при нажатии вращает карту по компасу или отключает вращение), профиль настроек (при нажатии можно выбрать).
Точка назначения отображается на карте красной точкой с флажком, когда она не видна, то появляется красная стрелка, которая указывает направление + на экране всегда видно расстояние до нее, что является достаточно удобным при пешей навигации. Точку назначения можно выбрать через любой поиск (Идти к), иногда надо использовать долгое нажатие, или через контекстное меню карты. При прокладке маршрута точка назначения должна быть выбранной. Ее можно убрать через Меню → Снять отметку.
Контекстное меню карты — это меню, действия которого привязано к выбранной точке на карте. Можно выбрать 3 способами: нажатие трекпоинта, долгое нажатие на карте + нажатие на появившейся областе (долго нажатие скрывает область), через меню. В этом меню выбранная точка 1) может быть выбрана как точка назначения 2) может использоваться как отправная точка маршрута (только для просмотра) 3) будет отправной для поиска POI, транспорта 4) может быть отправлена другу через SMS, email 5)…
Общие настройки и профили настроек
В приложение существуют общие настройки и настройки профиля. Общие настройки:
— ориентация экрана — можно установить, чтобы карта не сбивалась, когда несешь телефон в руке
— директория приложения — можно поменять /sdcard/osmand.
— локализация, единицы измерения расстояния, использование трекпоинта…
В приложении существует 4 профиля: по умолчания (обзор карты), авто, велосипед и пешеход. Все настройки выбранные в каждом профиле хранятся в нем. К примеру, для пешехода было выбрано всегда отоброжать дневной рендеринг, соответственно при смене на авто — эта настройка будет сброшена и будет установлена другая как автомасштабирование. При навигации профиль настроек меняется автоматически. Существуют настройки по умолчанию для каждого профиля, но все их можно менять и настраивать.
На данный момент карты и слои, хотя и отображаются в настройках, являются отдельными настройками приложения и не меняются по профилям.
Поиск
Искать можно по координатам, по адресу, избранные, POI, транспорт и в истории поиска. Для адреса, POI, транспорта необходимы векторные данные. Можно визуализировать поиск на карте, включив необходимые слои (Меню → Слои), слой POI фильтра, слой избранных или слой транспортных остановок. Для всех поисков активны 2 кнопки, «показать на карте» и «идти к», для избранных, истории опция «идти к» появляется при долгом нажатии. Попасть в поиск можно нажав кнопку поиск на устройстве. На поиск влияет опция «показать английские имена».
Адрес
Все довольно просто: выбираете регион (название векторных карт), город, улицу и т.д. Так же существует опция искать через Osm Nominatim, использует интернет и рекомендуется тем, кто знает как надо формировать запросы.
POI
Для поиска POI применяются фильтры. Редактируемые и созданные пользователем, отображаются звездочкой, стандартные OSM — папкой. Для редактирования необходимо долго нажатие на фильтре или выбрать новый фильтр, далее через меню фильтр можно «сохранить как» или «удалить». При выборе фильтра появляются 2 опции: искать рядом с собой (потребуется время пока приложение найдет спутники) или искать вокруг последнего выбранного участка карты. Существует способ отфильтровать найденные POI по имени — кнопка меню → фильтр.
Избранные
Добавить в избранные можно через контекстное меню на карте. Существует также отдельная опция «заменить», для динамических избранных, таких как машина, отель, место последней встречи в лесу :) Избранные точки можно экспортировать и импортировать (файл GPX), важно при удалении приложения и установке заново. Не рекомендуется импортировать большое количество избранных точек, лучше для этого использовать слой «GPX файл».
Транспорт
Поиск транспорта можно назвать также как прокладка маршрута вручную. При поиске необходима начальная точка (конечная по усмотрению), поэтому поиск транспорта доступен из контекстного меню карты. Надпись искать транспорт до цели кликабельна, в одном случае цель учитывается, в другом нет. При поиске транспорта — результаты сортируются по наименьшей сумме от старта до маршрута + от маршрута до назначения. При выборе некоторого маршрута, предлагается выбрать остановку, на которой выходить. После этого поиск будет повторен, но начальной точкой будет уже точка остановки предыдущего маршрута (Искать после). Таким образом можно построить маршрут с пересадками, но остановки пересадок придется выбирать вручную.
Фоновый сервис
Фоновый сервис может быть полезен, если вы хотите отключить экран и не использовать GPS непрерывно. Фоновый сервис запускает позиционирование GPS через определенные промежутки времени и выполняет 2 функции: запись GPX трека и навигация (включая голосовую). Включить фоновый сервис можно в настройках.
Навигация и прокладка маршрута
Для того, чтобы проложить маршрут, необходимо выбрать точку следования, а затем Меню — маршрут. Существует 2 режима для построения маршрута: следовать (навигация) и просмотр маршрута. Посмотреть информацию о проложенном маршруте можно Меню — Маршрут — О маршруте. При выборе режима следовать — автоматически меняется профиль и маршрут прокладывается от текущего местоположения, при этом включается голосовая навигация.
Существует 3 источника построения маршрутов: онлайн источник (Cloudmade, Yours), офлайн навигация по векторным данным (нестабильная) и навигация по GPX треку. Наиболее оптимальным является Cloudmade, но требует подключения к интернету. Навигация по векторным данным находится в стадии разработки и может использоваться только на короткие расстояния и еще пока не определяет съезды на трассы/круги движения и другое. Навигироваться можно и по GPX треку, построенному, например, maps.cloudmade.com (Карта — Меню — Навигация по GPX).
Мониторинг и GPX файлы
Мониторинг и запись GPX файлов в /sdcard/osmand/tracks включена по умолчанию для некоторых профилей (авто, велосипед), поэтому история ваших движений хранится в GPX файлах по дням. Эти настройки можно отключить и включить для других профилей, выбрав желаемый интервал слежения.
В приложении можно просмотреть записанные треки, а также созданные другими пользователями. Для этого необходимо, чтобы GPX файлы находились в /sdcard/osmand/tracks. Включить можно через Слои — GPX, при этом все сегменты будут отображены линиями на карте, а все точки в треке будут отображены как избранные. Они также будут доступны в списке избранных, пока включен слой.
В любой момент в записываемый GPX файл можно добавить точку с описанием, сделать это можно через контекстное меню карты. Это бывает полезно для записи некоторых POI при отсутствии интернета.
Другое
- В приложении есть функции для редактирования и комментирования OSM карт: слой Osm bugs, создание/редактирование POI (через контекстное меню), создание Osm bugs. Для редактирования POI необходимо указать свой логин в настройках.
- Не забывайте просматривать полезные советы (иконка вопросик): там публикуются последние изменения в приложении.
- Можно создавать собственные векторные карты, например, для отображения geocaching как POI. Для этого необходимо сконвертировать исходные данные в Osm формат и проиндексировать его используя OsmAndMapCreator.
P.S. Если я что-то упустил, какие-то интересные и маленькие моменты, буду добавлять в «другое».
Спасибо за внимание