OpenStreetMap на каждый день

в 9:42, , рубрики: android, Leaflet, OpenStreetMap, геокодирование, карты, навигация, метки: , , , , ,

OpenStreetMap на каждый день
На хабре OSM упоминают постоянно, вот только репутация у проекта, похоже, совсем никакая: кучка людей что-то программирует, рисует какие-то линии и отношения, борется за лицензионную чистоту. Но на самом деле проект совсем про другое: дать каждому карту, с которой можно делать что угодно: те же гуглокарты, те же Яндекс.Карты, но которые при желании можно поправить или скачать на мобильное устройство.

Поэтому я хочу рассказать об основах: как эти карты заменили мне яндекс почти во всех каждодневных задачах.

Посмотреть и поискать

Для русскоязычного участника у проекта есть две точки входа: openstreetmap.org (также osm.org) и openstreetmap.ru (osm.org.ru). На них есть большая карта и строка поиска. Различаются эти сайты списком слоёв: на русском их значительно больше, в том числе красивейший MapSurfer.NET, спутниковые снимки от Bing, трёхмерные домики и обратная связь («указать неточность на карте», затем дабл-клик в любом месте). Второе различие — механизм поиска.

На openstreetmap.org поиск работает по адресам в западном стиле: номер дома, улица, город (например, «24, Невский проспект, Санкт-Петербург»). Сокращения не работают, выкидывать статусную часть (написать «Невский» вместо «Невский проспект») или добавлять её («посёлок Кузьмолово» вместо «Кузьмолово») нежелательно. Зато работает поиск по POI (точки интереса: магазины, кафе, парикмахерские, кинотеатры и т.п.) и по названиям категорий («кафе рядом с Невский проспект», падежи тоже не работают). Короче, хороший поиск, но не адаптированный к русским запросам.

OpenStreetMap на каждый день

Это попытались исправить на openstreetmap.ru: туда можно вставить большинство адресов с разных сайтов, и они правильно обработаются. Собственно, 90% моих обращений к Яндекс.Картам было как к поисковику по адресам, и сейчас наш сайт его заменил. Из бонусов — для проекта геопозиционирования избирательных комиссий я использовал API нашего поисковика (openstreetmap.ru/api/search?q=Язь), и он в Петербурге нашёл почти все адреса (написанные, замечу, в свободной форме).

Ещё 9% обращений к картам — поиск места «глазами»: открытие сайта, уменьшение масштаба до всей планеты, затем приближение к нужному месту в три-четыре прыжка с помощью растягивания прямоугольника мышью с зажатым Shift. После привыкания к масштабированию прямоугольником сайты гугля и яндекса внезапно становятся жутко неудобными. Замечу, что openstreetmap.ru пока что тоже не очень удобен, потому что там нет линейки масштабов, и приходится сто раз жать на кнопку «минус».

Поделиться

Проиллюстрировать координаты или адрес можно тремя способами. Первый — сделать скриншот карты. Второй — дать ссылку на фрагмент карты. На openstreetmap.org для этого справа внизу есть два типа ссылок: длинная (для статей) и короткая (кинуть в чатик). У первой очевидная и читаемая структура, вторая не разрывает экран.

OpenStreetMap на каждый деньНа openstreetmap.ru постоянная ссылка слева внизу, но кроме этого, можно явно отметить точку, о которой речь, маркером: это слово спрятано в значке с шестерёнками справа.

Самый продвинутый способ — поместить на страницу живую карту с маркерами и чем только не. Вручную это несложно сделать библиотекой Leaflet, но можно полениться и применить инструмент, рекомендуемый для информационных сайтов Евросоюза.

Измерять и рисовать

Инструмент измерения расстояний на карте Яндекса часто используют для рисования маршрутов: и линия есть, и её длину показывают, и ссылку получить несложно. В OpenStreetMap это два разных инструмента. Так, для измерения расстояний есть отдельный сайт Distance Calculator. Он даже выдаёт расстояние в двух системах координат. И позволяет сохранить нарисованный путь в gpx. Oh wait…

Рисование маршрутов для других — в Show Your Journey. Хотя там везде предлагается зарегистрироваться, это нужно только для правки своих маршрутов, а сделать новый просто: справа внизу кнопка «Start a route», затем нарисовать (или загрузить GPX), затем ввести название и тыкнуть в «Create».

OpenStreetMap на каждый день

Наконец, недавно на openstreetmap.ru в инструментах появился пункт «Персональная карта». Это адекватная замена рисованию меток и ломаных на картах Яндекса. Правда, интерфейс не такой красивый, и информации маловато, поэтому если карта позволяет, рисовать ломаные в яндексе пока проще.

Прокладывать маршрут

О, это просто грааль в пользовательской картографии. У каждого продавца карт есть свой движок, у OpenStreetMap их десяток. Для быстрого подсчёта расстояний не могу отказать себе в удовольствии использовать Project OSRM: его скорость поражает. Тянешь маркер — и маршрут перестраивается в реальном времени. Увы, работает только в Европе и европейской части России. Есть неплохой шанс, что этот движок скоро запустят в полную силу на openstreetmap.org.

OpenStreetMap на каждый день

Для более сложного роутинга, с промежуточными точками и выбором транспорта, я пользуюсь сервисом Cloudmade. Кроме него есть OpenRouteService и YourNavigation.org: у всех трёх есть свои недостатки, первый и третий ещё и нерегулярно обновляются, но окончательный выбор делается по удобству: функциональность у них примерно одинаковая, и все они лучше коммерческих альтернатив, особенно на длинных дистанциях. Пользовался бы красивым MapQuest, но у меня никак не получается его завести.

Взять с собой

Способ XX века: распечатать! Сайтов много, самый очевидный — Walking Papers. Если собираетесь провести несколько дней в незнакомом городе, Maposmatic делает некое подобие атласа с указателем улиц.

OpenStreetMap на каждый день

Но будем более технологичны. Даже носить с собой гигабайты выкачанных тайлов — это прошлый век. Преимущество OpenStreetMap — доступность исходных данных. Векторные карты на телефонах с J2ME показывает GpsMid, на ай*ах — MapsWithMe, а для андроидов самое лучшее приложение — это OsmAnd+ (есть бесплатная версия, также см. их страницу). В последнем прямо из программы можно скачивать сборки карт для нужных областей и стран, плюс добавлять разные слои POI. Например, в последнем путешествии мы подключили слой статей из википедии, и пока я рулил, жена читала описания мест, где мы проезжали.

Настоящие туристы, разумеется, плюют на новомодные устройства и пользуются отдельными навигаторами. Выгрузки данных есть почти под любую систему: Навител, СитиГид, ПокетГис, ГисРусса. Но больше всего выгрузок для Garmin, потому что у всех своё назначение. Три самых популярных по России: автомобильная и две туристических: от ValentinAK и от Макса Васильева. Для поездок за границу добро пожаловать к шведскому столу.

Пользоваться и дополнять

OpenStreetMap на каждый день

Что-то под конец статья скатилась в список ссылок. Ну и ладно: в нашей несуразной вики, признаюсь, найти что-то полезное непросто, особенно после набега графоманов-википедистов. С другой стороны, уже на офлайновом использовании мы вышли за границы функциональности «больших» карт, и при этом самые красивые применения данным OSM остались за кадром. И что действительно поражает — все эти сайты, сервисы, выгрузки, роутинг работают с одними и теми же данными, которые может поправить или дополнить каждый. Чем мы и занимаемся каждый день. Пользуйтесь нашей картой — и, может быть, когда-нибудь вам захочется поправить какую-то мелочь. Так и увязают.

В статье использованы комикс FakeSteveC, снимки карты OpenStreetMap в тайлах osm.org, MapSurfer.net и Stamen Design, а также фотография kachkaev.

Автор: Zverik

Поделиться

* - обязательные к заполнению поля