Готовим карты самостоятельно

Готовим карты самостоятельно

Чтобы в дороге посмотреть карту на мобильном устройстве, необязательно иметь доступ в Интернет — можно заранее подготовить все необходимое.

Чтобы в дороге посмотреть карту на мобильном устройстве, необязательно иметь доступ в Интернет — можно заранее подготовить все необходимое.

В приложении OsmAndMapCreator можно оптимизировать скачанные карты, задав степень увеличения, необходимые слои и данные POI В приложении OsmAndMapCreator можно оптимизировать скачанные карты, задав степень увеличения, необходимые слои и данные POI Путешествия с современными мобильными устройствами, которые являются активными потребителями интернет-трафика, перестали быть экзотикой. Подключиться к Wi-Fi или купить местную SIM-карту с недорогим тарифом на доступ в Сеть несложно как в России, так и за рубежом. Тем не менее экономичнее и практичнее все же не полагаться на мобильный Интернет, а заранее закачать необходимые карты в устройство и пользоваться ими автономно. Как это сделать, расскажет CHIP.

В качестве испытательной платформы мы выбрали ОС Android, поскольку устройства, основанные на ней (планшеты, смартфоны, ридеры и т. д.), сейчас распространены повсеместно и стоят недорого. Безусловно, общий принцип работы применим и к WM-коммуникаторам, и к S60-смартфонам, если установить на них соответствующий софт. Пока же для подготовки и создания офлайн-карт нам потребуется высокоскоростной доступ в Сеть и карта памяти с достаточным объемом свободного места. В идеале необходимо иметь носитель не менее чем на 2 Гбайт. Все приложения, упоминаемые в статье, распространяются свободно или имеют бесплатную версию.

Кеширование фрагмента карты на устройство

Смысл кеширования состоит в том, что отмеченный пользователем фрагмент карты (квадрант) загружается на устройство с той или иной степенью детализации (она регулируется через масштабирование) — обычно это база данных, содержащая векторную карту с индексом дополнительных сведений (точек интереса, маршрутов и т. п.). Так как загрузка происходит с удаленного сервера, разработчик картографического сервиса может ограничивать закачку карт на устройство во избежание перегрузки каналов. Например, в бесплатной версии приложения Locus в сутки можно скачать не более 100 Мбайт фрагментов карт. Важно также отметить, что чем больше кратность приближения (чем крупнее масштаб), тем больше данных нужно загрузить. При высокой детализации среднего по размерам города это может занять порядка 1 Гбайт.

Функция кеширования доступна в последних версиях Google Maps. Ее нужно активировать через меню «Лаборатория Google» в основных настройках приложения (раздел «Сохранение области карты в кеше»). Реализована данная опция пока не очень удобно: кешируется не произвольная область карты, а местность вокруг одной из точек POI. Чтобы загрузить карту, потребуется найти какое-либо заведение, расположенное в данной местности и внесенное в адресный перечень организаций, открыть его карточку и в закладке «Карты» выбрать пункт кеширования. В результате приложение «захватит» кусок карты в радиусе 10 км от учреждения и начнет загружать его в память устройства. Поскольку при этом не скачиваются никакие дополнительные слои, а только картооснова с улицами, объем данных не очень большой — например, участок размером примерно в два с половиной административных района Санкт-Петербурга занял на карте памяти около 7 Мбайт. Кешированный фрагмент выделяется на карте черной рамкой. Важно отметить, что через 30 дней кеш автоматически очищается и карты придется подгружать заново. Для сравнения: кеш карт от «Яндекса» в зависимости от уровня приближения занимает в полтора-три раза больше места. Кеширование в приложении «Яндекс. Карты» происходит автоматически.

Типы карт

Карты для навигации могут быть как растровыми, так и векторными. Помимо различия в качестве между двумя типами изображений существуют и технические расхождения: на векторной карте реализуемы возможности прокладки маршрутов и загрузки дополнительных сведений, а ее файлы занимают немного места. Растровые карты представляют собой обычные изображения в формате BMP или JPEG с привязанной к ним координатной сеткой. Приложение Locus способно использовать оба типа карт, позволяя получать максимум информации о местности.

Приложение OsmAnd

Внешний вид отображения слоев в OsmAnd можно настроить через меню «Application Mode»
Внешний вид отображения слоев в OsmAnd можно настроить через меню «Application Mode» Бесплатные карты для офлайнового использования предоставляет сервис OpenStreetMap. В рамках этого проекта тысячи энтузиастов создают карту всего мира с подробными данными о географических названиях, адресах и т. д. Оболочек, использующих OpenStreetMap, насчитываются десятки — для самых различных платформ. Мы сосредоточим внимание на одной из лучших программ для Android — OsmAnd. Среди ее функций имеется навигация по маршруту с голосовым сопровождением, возможность использования разных источников карт и поиск по адресу. Рассмотрим два варианта работы приложения с картами OSM. Первый и наиболее простой — загрузка готовых карт стран и регионов непосредственно из OsmAnd. Второй — подготовка выборочной области карты и информации на ней на ПК и дальнейшая загрузка данных на мобильное устройство.

Загрузка карты страны

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

Для этого в OsmAnd нужно в настройках выбрать раздел «Данные | Загрузить индексы», после чего в открывшемся списке указать требуемые страны. В десктопном приложении эта операция выполняется путем загрузки из каталога архива с OBF-картой и базой индекса (улицы, адреса, населенные пункты) с последующей распаковкой на диске.

В другом приложении — MapDroyd (www.mapdroyd.com), доступном как через Android Market, так и альтернативный репозиторий SlideMe, — позволяется скачивать не только
карты стран, но и их регионов в сверхкомпактном размере (они занимают максимум несколько мегабайт). В этом проекте применяется особый формат MicroMap с высокой степенью сжатия. Кроме того, в программе могут использоваться не только бесплатные карты OpenStreetMap, но и коммерческие решения от NAVTEQ или TeleAtlas.

Подготовка карты с помощью ПК

OsmAnd поддерживает несколько источников картооснов. Можно включить как векторные, так и растровые карты
OsmAnd поддерживает несколько источников картооснов. Можно включить как векторные, так и растровые карты Для загрузки отдельных областей карт, экономящей место на карте памяти, воспользуемся утилитой для ПК. В случае с OsmAnd это универсальная программа-конвертер ГИС-данных OsmAndMapCreator, выполненная в виде Java-приложения. Для ее запуска разархивируйте дистрибутив и кликните по файлу OsmAndMapCreator.bat.
На компьютере при этом должна быть установлена Java-машина.

Чтобы подготовить карту, требуется запустить программу, выбрать нужный регион (передвигать карту можно при зажатой правой кнопке мыши) и выделить область левой клавишей мыши. Затем надо кликнуть по «Preload Area». В появившемся окне выбирается уровень зума (масштаба карты) — начальный и конечный. Чем больше число, тем карта крупнее. Он зависит от источника карт, но обычно находится в диапазоне от 1 до 19–20. После этого надо указать папку для сохранения выделенного фрагмента карты — по умолчанию это каталог OsmAnd в папке C:ПользователиИмя пользователя. По окончании загрузки вам потребуется сжать карту. Для этого в меню «Source of tiles» надо нажать «Create sqlite database». Это приведет к созданию файла с расширением .sqlitedb в вышеуказанной папке. Его надо скопировать в каталог /osmand/tiles на карте памяти смартфона.

Если нужных вам карт в OSM-формате нет, то можно сконвертировать в него данные других форматов. Например, можно воспользоваться файлами KML для «Карт Google» и преобразовать их для использования в OsmAnd с помощью утилиты QantumGis , исключив ненужные данные индекса и точки интереса.

Автономный адреснотелефонный справочник

Продуктов, позволяющих ориентироваться на местности не только с помощью улиц и географических объектов, но и по учреждениям (компаниям, достопримечательностям
и т. д.) сегодня существует много. В основном это объединенные телефонные справочники организаций, интегрированные с картами от «Яндекса» или Google. Автономных же решений для мобильных устройств в масштабах регионов, а не только Москвы и Петербурга, крайне мало, в отличие от Запада. Одним из наиболее активно развивающихся продуктов в этой сфере является 2ГИС, существующий уже более пяти лет как решение для Зауралья, а в последнее время объявивший о своей экспансии в центральных регионах страны. Продукт представляет собой полностью автономно работающую оболочку, в которую загружена карта местности с адресным планом, телефонным справочником и маршрутами общественного транспорта. Размер баз зависит от города, но в большинстве случаев не превышает 40 Мбайт (при размере оболочки 5–15 Мбайт). 2ГИС работает со 120 городами Рос-сии (от Калининграда до Владивостока), а также на Украине — в Одессе и Ильичевске. Координаты местоположения могут определяться по сигналам от базовых станций, а также через GPS. Из удобных особенностей отметим автономную прокладку маршрутов общественного транспорта, включая паромы и поезда. Эта функция отсутствует во всех конкурирующих приложениях, где прокладка маршрута обычно требует выхода в Интернет или является неточной. Имеются у 2ГИС и недостатки — плохо адаптированный под возможности сенсорных экранов интерфейс управления и необходимость загружать при обновлении полную базу.

Сохранение трека на карте

Помимо ориентирования на местности GPS-оболочки для карт под Android имеют функции записи трека. Речь идет о сохранении точек маршрута с последующим экспортом в поддерживаемый формат данных, который можно загрузить в веб-приложения для карт или конвертировать для использования в навигационных программах. В треке учитываются не только путевые точки, но и дополнительная информация — например, время прохождения маршрута, скорость, подъемы и спуски. Кроме того, трек может быть разделен на подтреки. Обычно треки записываются в формате KML, который поддерживается сервисом Google Earth и легко конвертируется в GPX, распространенный на персональных навигаторах. Функцию записи трека предоставляет программа Locus, а также сторонние приложения — например, My Tracks. Этот поддерживаемый Google проект позволяет сохранять трек напрямую в GPX/KML и интегрирован с сервисами Google («Документами» и «Картами»). Программа имеет ограничение по количеству точек — максимум 500. Еще одно приложение, OSMTracker, умеет записывать пройденный путь в GPX-формате, позволяя добавлять голосовые метки и фотографии и подгружать их на OSM-карты.

Если вы хотите показать пройденный вами путь своим друзьям, воспользуйтесь бесплатным сервисом www.sportstracklive.com. У него существует собственный клиент для смартфонов SportsTracker, но вы можете и импортировать треки в форматах GPX, CRS, FIT и HRM. Маршрут здесь можно просматривать в анимированном режиме — при этом карта перемещается вслед за треком.

SportsTracker отображает пройденный маршрут на собственном онлайн-сервисе с указанием скорости движения и высоты
SportsTracker отображает пройденный маршрут на собственном онлайн-сервисе с указанием скорости движения и высоты Наложение карт

При использовании карт через сторонние оболочки можно применять несколько источников данных — например, использовать картооснову от OpenStreetMaps, на которую накладываются слой спутниковой карты Google и адресный план от «Яндекса». Для этого соответствующие файлы должны быть подготовлены и подгружены в программу. Обычно для картоосновы применяется векторная карта, после следует полупрозрачная растровая, на которой могут быть векторные планы POI, маршрутов и т. д. Оболочка, соответственно, отвечает за совмещение всех этих источников — в OsmAnd слои подключаются через меню настроек, где выбираются нужные пункты и указывается уровень прозрачности верхней карты («Настройки | Карта»).

Рекомендуем