Наши партнеры ArtmMisto
В цей практичний статті розглянемо сервіси, що допомагають завантажити карти з онлайн-сервісу OpenStreetMap для подальшої конвертації їх в інші картографічні формати, щоб використовувати їх в оффлайн-режимі вже без підключення до інтернету.
Зараз літо, і для багатьох це головне час для подорожей. Отже, саме час діставати навігатори , Або ж ставити на планшети і смартфони спеціальне навігаційне програмне забезпечення, щоб не заблукати в незнайомих місцях. Тим більше що недоліку в подібних програмах в нинішню епоху GPS і мобільних пристроїв не спостерігається. До послуг користувачів як географічні інтернет-сервіси на зразок Google Maps і Microsoft Bing, так і спеціалізоване ПО на кшталт "2ГІС" з власними картами.
Останній варіант з локальними картами, які користувачі попередньо завантажують і встановлюють для свого навігаційного ПО, у багатьох випадках не тільки зручніше, але і єдине можливе рішення. Так як інтернет в тій чи іншій місцевості може виявитися дорогим або ж взагалі не працювати. Але при цьому потрібні оффлайн-карти конкретної місцевості теж можуть бути відсутні.
Нижче розглянемо варіанти завантаження картографічних даних з онлайн-сервісу OpenStreetMap (OSM) з подальшою метою перетворити ці дані в конкретний формат карт для своєї навігаційної програми. Ми вже детально розповідали про проект OpenStreetMap . Це відкритий картографічний веб-сервіс, схожий на Google Maps, дані якого збираються самими ж користувачами і доступні всім за відкритою ліцензією. У статті для прикладу розглянемо конвертацію даних OSM для програми OsmAnd для Android-пристроїв , Яку ми теж детально розглядали на сайті "КВ".
Офіційний сайт OSM
Отже, нам потрібно завантажити картографічні дані OpenStreetMap якоїсь конкретної території. В першу чергу, це можна зробити з офіційного сайту сервісу www.openstreetmap.org .
Безпосередньо на онлайн-карті ресурсу є посилання "Export", при натисканні на яку з'явиться панель експорту даних . Тут за допомогою синьої кнопки "Manually select a different area" (ручне виділення особливої області) потрібно виділити на карті прямокутник потрібної території, після чого вибрати зі списку форматів "OpenStreetMap XML Data" і натиснути кнопку "Export".
В результаті завантажиться файл з розширенням osm. Це текстовий xml-файл з картографічними даними, які можна потім конвертувати в інші формати .
Однак офіційний сайт накладає обмеження на обсяг скачуваних картографічних даних. Завантажується карта не повинна містити більше 500 нод. А будь-яке місто - це завжди буде більше 500 нод. Але існують інші сервіси, які дозволяють завантажити потрібний географічний район без подібних обмежень.
Вся планета
є ресурс "Planet OSM" , Де можна скачати всю планетарну базу картографічних даних OpenStreetMap одним файлом planet.osm. На цьому сайті міститься найактуальніша версія всіх даних проекту OSM . Нова версія planet.osm випускається щотижня. А потім вже за допомогою утиліт-екстракторів можна вирізати картографічні дані для конкретної території.
Однак для звичайного користувача возитися з osm-картою всієї Землі - це не найпростіша справа. Файл planet.osm тільки в архіві займає близько 30 гігабайт. Можна звернутися до інших сервісів, які спрощують отримання OSM-даних.
Geofabrik
німецький сайт Geofabrik пропонує завантажити останні актуальні карти OpenStreetMap за географічними регіонам - Європа , Азія, Африка і так далі, а також по країнах. Це набагато зручніше, і, наприклад, картографічні дані Білорусі займають всього близько 60 мегабайт в архіві.
Дані OSM пропонуються для завантаження, як в заархівує, так і в бінарному форматі PBF, що використовується в деяких програмах. І, природно, завантаження карти з ресурсу Geofabrik є абсолютно безкоштовною.
ще дрібніше
Однак є сервіс, який пропонує безкоштовну можливість завантажити ще більш дрібну osm-карту, ніж окрема країна - наприклад, окреме місто чи невелике селище. Такі невеликі карти потрібні, наприклад, велосипедистам. BBBike - це веб-сервіс для любителів двоколісних засобів подорожі, який і пропонує завантажити osm-карти міст і невеликих територій.
По-перше, тут можна скачати вже готові osm-карти окремих міст. Але якщо готової карти потрібної місцевості немає, її можна отримати на спеціальній сторінці сервісу extract.bbbike.org .
Тут потрібно виділити на карті OSM потрібну місцевість, і в спеціальних полях вказати свою адресу e-mail і задати назву виділеної карті. Важливо, що сервіс дає можливість завантажити карту не тільки в форматі OSM, а й конвертувати його в уже готові формати Garmin, Navit, Esri .
Так як "витяжка" конкретної карти місцевості на сервісі відбувається з planet.osm, то на це потрібен якийсь час. Результат буде готовий через 15-30 хвилин в залежності від розміру площі карти і навантаження на сервіс. Як тільки процес екстракції карти завершиться, користувач буде сповіщений на залишений ним адресу e-mail.
конвертуємо
Таким чином, отримавши картографічні дані конкретного регіону у вигляді текстового osm-файлу, можна приступити до його конвертації в уже готовий формат карти з векторної або растрової графікою для навігаційного додатка. Наприклад, для програмного GPS-навігатора OsmAnd потрібно конвертувати картографічні дані OSM в формат OBF.
Для цього існує спеціальний конвертор OsmAndMapCreator . Ця програма написано на Java і є кросплатформним. Запускається після розпакування, в залежності від операційної системи, скриптом sh або bat. Але при цьому програма має графічний інтерфейс.
Конвертувати файл osm потрібно через меню "Файл" - "Створити файл obf з файлу osm". Після чого в заздалегідь зазначеній папці з'явиться файл з розширенням obf, який і потрібно перенести на Android-пристрій в каталог / sdcard / osmand /. Тепер карта даної місцевості стане доступна в OsmAnd в оффлайн-режимі.
За допомогою OsmAndMapCreator можна створювати карти OBF і за допомогою даних з інших картографічних онлайн-сервісів. Але огляд даних можливостей програми виходить за межі теми цієї статті.
Михайло АСТАПЧІК