94 заметки с тегом

osm.org

Позднее Ctrl + ↑

Праздник со слезами на глазах

В техноблогах начали появляться заметки про десятилетие OpenStreetMap, как наш проект развился за это время и какое светлое будущее нас ждёт. Обычная шарманка про рождение из ничего, из желания Стива Коста сделать свободную альтернативу картам Ordnance Survey, смешную поначалу, но грозную теперь. И у нас, конечно, будет всего больше, сообщество станет мягче относиться к импортам, и настанет всеобщий API 0.7. Какая же бочка чуши.

Прежде всего, посмотрите на карту OpenStreetMap восемь лет назад, от 14 августа 2006 года (спасибо Фредерику Рамму за подготовку базы). Нет смысла искать там свой город: это чистое поле с парой линий в Англии и Дании. Чем занимались участники проекта предшествующие два года? Ну э-э-э, собирали треки. JOSM появился в январе 2006, Osmarender и API 0.3 — в марте. До этого OSM практически был на уровне идеи: почтовая рассылка и вики.

Технически развитие OSM остановилось в 2011 году: тогда уже вовсю работал рендер на мапнике, потлатч 2 заменил первый, продвинутые мапперы использовали JOSM, появились OSRM, Overpass API и Leaflet. С тех пор — только дописывание библиотек, смена дизайна или затухание заброшенных программ. Единственное исключение — редактор iD, часть большого и страшного проекта под названием «Mapbox». Страшный он потому, что может стать нашим будущим.

Что нас ждёт? Раньше я оптимистично бросался названиями типа «год редактора карты», призывал распространять весть об OpenStreetMap в школы. Думал, что вот-вот — и напишут удобные инструменты для отката ченджсетов, для классификации тегов, для сбора данных пешком, на велосипеде и на машине. Реальность такова, что банальное перемещение точек в лучшем редакторе JOSM сделано настолько криво, что пришлось включить в ядро два альтернативных способа (кнопки «W» и «X»). Нет ничего, и ничего не предвидится. Новый OWL заглох, роутинг и overpass на глагне так и пылятся в ветвях гитхаба, про API 0.7 и говорить смешно, даже если не вспоминать слово «полигоны». Кажется, проект окончательно стагнировал, только сотни тысяч участников обводят, рисуют, импортируют, воюют.

Нельзя прогнозировать на год или два вперёд, потому что за это время мы не смогли построить надёжной, предсказуемой организационной структуры (админы — единственное исключение). Можно лишь надеяться. Что кто-нибудь загрузит первые коммиты для нового API в ветку cgimap. Что появится настойчивый участник, который пробьёт стену безразличия и перфекционизма, добавив на osm.org полезную функциональность. Что некоторым программистам начнут платить за работу и требовать от них результатов в конечные сроки. Что у нас появится хотя бы один практикующий юрист, и мы узнаем, не зря ли провели три года в перепалках. Что Mapbox не захватит технологический стек OSM своим джаваскриптом. Что откат ченджсетов станет проще, а ошибки будут валидироваться на сервере.

OpenStreetMap — без сомнения, лучшая карта всего мира. Непонятно, почему его до сих пор воспринимают как несерьёзную поделку, и часто забывают упомянуть в сравнительных статьях. Хотя нет, понятно. Дайте нам ещё десять лет.

Также:

Дамп блокнота

Сегодня, спустя 15 месяцев после добавления функциональности заметок на сайт osm.org, сделали их ежедневную выгрузку на planet.osm.org. Теперь можно обработать их как-то по-своему, а не довольствоваться статистикой от Паскаля. Последняя, кстати, ставит Россию на третье место по количеству заметок, но в первой тридцатке закрывающих — только literan. Не чета Франции и Канаде, где остаётся открытой только одна заметка из 14.

Разумеется, выложившие дамп заметок снова забыли указать, по какой лицензии они распространяются. Учитывая, что для добавления не нужно регистрироваться, наверное, public domain. Впрочем, значения это не имеет: едва ли дамп кому-то пригодится для серьёзного проекта, как когда-то дампы GPS-точек и треков. Те не обновляли с апреля прошлого года — не пригодились.

2014   osm.org

История вопроса

На этой неделе у меня пошли гениальные идеи, как нам обустроить API. Ночная беседа с jekhor про проблемы отношений веломаршрутов утром понедельника конденсировалась в тикет в Rails Port, где я предложил добавить в возвращаемые объекты ссылки (тип и id) на содержащие их линии и отношения. Так редактор всегда будет знать, что точки и линии принадлежат неподгруженным объектам, и сможет предупредить пользователя перед разбиением или удалением. После обычных комментариев непонимания обсуждение перешло на технические проблемы и вопросы совместимости, и вечером на встрече рабочей группы по технологиям (EWG) мы согласились, что добавление нового тега в вывод API сломает какие-нибудь программы, вроде osmosis. Поэтому пора повышать номер версии OSM API.

В вечерней беседе после конференции промелькнула мысль, что если мы так и будем ждать от API 0.7 великого (см. список предложений и сокращённый список), он никогда не наступит. Поэтому нужно двигаться мелкими шажками: например, поправить бардак в статусах ошибок HTTP, добавить мелкие валидации, формат JSON, всё такое. На этой волне я составил список, выросший за неделю до 14 пунктов, большая часть которых решается парой запросов к базе данных (а то и вовсе парой строк кода). Задержав окончание собрания на час, мы с Мэттом Эймосом договорились, что пора делать форк, или как там добавляется новый API к серверу. Просто чтобы была площадка для экспериментов, и чтобы дать старт. Вполне вероятно, на следующей неделе будут сделаны первые запросы к ...dev.openstreetmap.org/api/0.7.

Конечно, согласившись, что изменения должны быть мелкими, я не продержался и часа, чтобы не взяться за вечную проблему API 0.6: тип объектов area. Подходов к нему было множество, хотя после ноября 2012 года, когда Jochen Topf написал заметку про области, копошение затихло. Что печально: ни один из вариантов не был идельным. Например, решение для береговых линий было только у совсем диких предложений. Не совместив в едином типе здания о четырёх стенах и береговую линию, нечего и думать о свержении статуса-кво. Пришлось подумать очень хорошо, и решение оказалось достаточно простым, похожим на предыдущие попытки, и одновременно отличающимся в деталях.

Предлагаемые области содержат списки точек для каждого из внешних и внутренних контуров: как линии, только вместо одного списка — несколько. По сути, это полигоны модели Simple Features, со всеми плюшками и ограничениями, и их преобразование в формат Shape / PostGIS будет элементарно. Недостатки — невозможность делить часть контура между областями и ограничения на количество точек — исправляет второй способ задания областей. Он похож на мультиполигоны, но наоборот: не область ссылается на линии, а линии на область. Так можно совместно одновременно редактировать одну и ту же область (привет трогавшим границу РФ), и не будет конфликтов, потому что сам объект не изменяется. Со стороны базы это не отличается от мультиполигона: всё то же отношение «многие ко многим», но без явного списка для потребителей данных. При этом все точки и линии, составляющие контуры, сортируются против часовой стрелки для внешних контуров и по часовой для внутренних: это позволяет правильно отобразить частично загруженные данные (у мультиполигонов с этим беда). В вики есть наглядный пример с картинкой, но если объяснить ещё проще, вместо полигонов будут костлайны. Вопрос «делать Онежское озеро мультиполигоном или костлайном» отпадёт автоматически.

Одного видения для внедрения типа area недостаточно: нужно продумать алгоритм миграции базы данных, написать новые api и страницы для Rails Port, обновить cgimap, сделать поддержку в каком-нибудь редакторе (и, боюсь, level0 недостаточно) и в каком-нибудь рендерере (хоть osmarender). Написать сотню тестов и убедить всех, что идея работает. Только после этого, когда мутный поток «а вот я бы сделал так» иссякнет, а форк будет готов к пул-реквесту, вопрос «а не сделать ли нам тип area вот так» приобретёт достаточный вес. Право, лучше не мучаться, а ограничиться для нового API правкой статусов ошибок, мелкими валидациями и парой новых запросов к базе данных.

 8 комментариев   2014   osm.org

Всё, о чём вы мечтали

Сейчас на гитхабе обсуждают два пул-реквеста, добавляющие на osm.org инструменты, пришествия которых мы не ждали в этом году. Во-первых, роутинг от Ричарда Фэйрхёрста. Из косой поделки за год он превратился в удобный и приятный инструмент, с выбором движка (т. е. есть пешеходный и велороутинг), геокодированием и словесным описанием маршрута. Кроме того, это единственный осмосайт, где в старой опере работает перетаскивание маркеров на карту. Смотрите здесь.

Том Хьюз прислушался к Роланду, предложившему встроить Overpass API, но полностью переписал его заготовку, сделав приличный интерфейс. Принцип всё тот же: справа кнопка запроса данных, после нажатия в любую точку карты в панели перечисляется, что находится рядом с этой точкой и в какие границы она попадает. Слой данных станет почти не нужен, а инструкции по просмотру времени работы заведений станут проще. Вот демо-сайт.

Передвинули шкаф, на его место — диван

Вчера сайт openstreetmap.org удивил всех, кто не следил с начала октября за мощным пул-реквестом John Firebaugh. Он не только переносит почти все пункты меню слева наверх, но и устраняет все страницы /browse: история правок и информация об объектах теперь умещаются в левую всплывающую панель. Как следствие, все страницы, как и карта, теперь занимают всю ширину окна. Новые разделы «Помощь» и «About» (переводчики ещё не успели) продолжают работу по сокрытию форума, чтобы новички не дай бог нашли, где мы все прячемся.

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

 8 комментариев   2013   osm.org
Ранее Ctrl + ↓

Мнения, высказанные на этом сайте, отражают точку зрения лично автора сайта и ничью больше: ни его бывших или настоящих работодателей, ни семьи и знакомых.