25 заметок с тегом

валидаторы

Пакет не нужен

«Нельзя ли при отправке изменений из maps.me разделять объекты по континентам?» — в очередной раз спрашивают на форуме. А то bbox (ограничительный прямоугольник) слишком большой, неудобно. OpenStreetMap был зачат тысячу лет назад программистом, и это лезет изо всех щелей: удивительно, как самые бессмысленные атрибуты становятся мерилом качества.

Прямоугольник на карте — это миф. Минимальные и максимальные широта и долгота — так просто нарисовать фигуру в проекции меркатора, но на практике этих чисел не хватит даже чтобы нормально карту распечатать. Пакет правок, который покрывает полмира, мог добавить одну дорогу на Чукотке, но магия чисел и странных проекций заставит вздохнуть: опять эти импортёры делают ченджсеты на всю планету. От пакетов правок мы храним только bbox, поэтому нажмёшь в любом месте планеты на вкладку «история» и наблюдаешь всемирную историю, а не то, что ждал.

Но даже когда найдёшь нужный пакет правок, останется только бессильно смотреть на его bbox. И на стастраничный список точек, линий и отношений, каждая строчка которого по-своему бесполезна. Ченджсеты — это псевдоупорядочивание. Кажется, что они полезны присвоением метаданных группе объектов, своего рода над-отношения, но на самом деле — метки времени произвольны, их порядок не зависит от номера пакета, комментарии никто не пишет, источник часто врёт, географически, как видим, тоже никто не группирует. Остаётся один полезный атрибут: created_by. Всему остальному верить нельзя.

То есть, единственная польза от пакета правок — это посмотреть, каким редактором сделаны правки. Все остальные атрибуты: даты, bbox, список объектов — только отвлекают, создавая ложное впечатление группировки и упорядоченности. Которых нет, потому что техническое воплощение API не обещает порядка и не подразумевает удобства. Так, для правок maps.me я игнорирую пакеты и рассматриваю каждую правку отдельно. Правки на mmwatch — это поток объектов, у которых номер ченджсета лишь бесполезный атрибут. Увы, для сложных правок со взаимосвязанными изменениями (таких как сдвиг линии) такой подход не сработает.

Примерно об этом я говорил на схемотехнике год назад. О bbox нужно просто забыть: область применения этих прямоугольников ограничена и точно не касается ваших задач. А проблему пакетирования нужно как-то решать. Развязать топологические структуры, группировать по времени и географии, не давать пользователям и приложениям свободы в объединении правок. Это настоящая тема для какого-нибудь будущего API 0.8. А пока приходится работать с тем, что есть.

Следить за изменениями в регионе можно (нужно!) через WhoDidIt, искать их — в его более быстром форке. Пакет правок из интерфейса этого сайта можно открыть в Achavi, но иногда может не повезти. Если bbox окажется слишком велик, загрузки правок вы можете не дождаться. Потому что даже лучшие инструменты полагаются на bbox, который, повторюсь, плох примерно для всего.

Загружать геометрию ченджсетов часто приходится команде по работе с данными в Mapbox. Для этого они сделали и постоянно улучшают сайт OSM Changeset Analyzer, где есть фильтры по любому атрибуту, вплоть до причины для подозрений. Но самые подозрительные пакеты накрывают весь мир, Achavi тут бессилен. Поэтому в этом месяце они сделали то, что давно было пора: кэширование ченджсетов.

Каждую минуту скрипт скачивает свежие дополненные диффы и складывает их в хранилище Amazon S3. Затем он раздербанивает эти диффы на пакеты правок и результат тоже загружает туда же. И теперь сервис визуализации Changeset Map, встроенный в OSMCHA, загружает пакеты мгновенно. Обновите ваши букмарклеты: Changeset (перетащите в закладки).

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

27 апреля   javascript   mapbox   валидаторы   проекты

Большой ремонт мультиполигонов

Мультиполигон — это отношение с тегом type=multipolygon, содержащее линии в ролях inner и outer, образующие один или несколько замкнутых контуров. Их используют, чтобы нарисовать полигон с дыркой (например, дом со двором-колодцем) или не рисовать смежные полигоны по одним и тем же точкам. В принципе, если взять любой обычный полигон и навесить на него отношение с тегом type, он превратится в мультиполигон. Но так делать не стоит.

Если поставить теги на внешний контур, а не на отношение, такой мультиполигон будет считаться нарисованным в «старом стиле». Рендерер или osm2pgsql должны будут просмотреть все линии с ролью outer, убедиться, что теги совпадают, и использовать их для отрисовки. Теги на линиях внутренних контуров относятся к содержимому дырок, хотя иногда там можно встретить те же теги, что на внешнем контуре. Обрабатывать старые мультиполигоны сложно и долго.

«Новый» стиль тегирования мультиполигонов — это когда все теги на отношении. Что там висит на линиях контура — не важно. Рендерер сразу видит, что к чему, и не обязан просматривать каждый член отношения. Мультиполигоны в новом стиле нравятся всем, поэтому технари ратуют за истребление старых. Нужно перетегировать «всего» около 250 тысяч отношений, из 13 миллионов.

Йохен Топф предлагает делать это по ходу исправления сотен тысяч более важных ошибок в полигонах и мультиполигонах. К этому можно было приступить и раньше, взяв в помощь OSM Inspector, но планомерное истребление — не для всех. Иногда проще не видеть фронт работ, исправляя по ошибке за раз и имея выбор: нажать «следующая» или закрыть вкладку браузера. То есть, пойти в MapRoulette.

Зайдите сюда и посмотрите, что за задание в этот раз подготовил Йохен. Их довольно быстро выполняют, потому от раза к разу задания становятся всё больше. Прямо сейчас там ссылки для нескольких стран, включая Россию. Исправляют самопересечения, которых только у нас почти триста тысяч. По ходу можно встретить удивительные попытки рендерера нарисовать что-то вменяемое на месте ошибки. И, напоминает Йохен, не забывайте проверять, что теги мультиполигона висят на отношении.

2017   валидаторы

Он проехал — ты поправил

У компании Scout много автомобильных треков: их навигатор, кажется, отправляет их на сервер по умолчанию, если не отключить. Для нас это хорошо, потому что хотя компания и не выдаёт весь архив, её сотрудники анализируют весь массив треков и сравнивают его с данными OpenStreetMap. И время от времени мы получаем новые валидаторы.

Первый проект Мартайн показал месяц назад: это результат сравнения треков с дорогами, слой Missing Roads. Его можно посмотреть в браузере, или добавить в JOSM, установив плагин «missingRoads». На низких масштабах там «тепловая карта» всех ошибок, а с 15-го подгружаются квадраты с точками треков. Дальше всё очевидно: если под треком нет дороги, её нужно дорисовать.

На прошлой неделе мы получили второй проект, который тоже про сравнение треков с дорогами, но чуть сложнее: слой Traffic Flow Direction находит потенциально односторонние дороги, где в OSM обозначены двусторонние. Его также можно посмотреть и подключить в JOSM (плагин «trafficFlowDirection»). Неожиданным было отсутствие oneway прямо в центре Москвы, хотя в европейских столицах и американских городах таких ошибок больше — за счёт распространённости навигатора Scout.

Распространённость Scout — главный недочёт этого валидатора: восточнее Германии у них треков очень мало, и проблем сервис почти не видит. Недочёт вытекает из закрытости исходников: мы не можем, например, обработать базу треков OpenStreetMap. Мартайн пишет, что готов сделать это сам, но сначала нужно выдавить из Гранта, нашего админа, обновление дампа GPX: последний делали больше двух лет назад.

2015   валидаторы

Под арки

Водители грузовиков не всегда используют карты OpenStreetMap, но когда используют, они смотрят на редкие теги у дорог: в частности, maxheight и maxweight. Немцы давно озабочены вопросом расстановки этих значений на дороги под и над путепроводами, но только в феврале участник Mmd сделал валидатор на основе Overpass API: карту maxheight. Даже в центре Москвы эта карта пустовата, хотя казалось бы — посмотреть на панорамах или в записях видеорегистратора значения высоты и занести в OSM. Даже в Петербурге грузовикам поспокойнее: там, помимо ограничений высоты, проставлены полтора десятка тегов maxweight на мостах.

2013   валидаторы

Откуда и куда



Zartbitter сделал перерыв в своих десяти тысячах правок, чтобы подарить нам карту ограничений поворотов и ошибок в них. Она построена на Overpass API и обрабатывает данные OSM джаваскриптом, от чего работает быстрее, нежели старый Restriction Analyser (который до сих пор ждёт ответа от XAPI). Обновления карты, при этом, подхватываются за несколько минут.
2013   валидаторы

Без адреса

В дополнение к слою неименованных дорог Саймон Пул сделал следующий визуализатор: дома без номеров. В отличие от похожего слоя ITO, он проверяет не только теги на контуре, но и адресные точки внутри. Видимо, этого условия недостаточно: в городах замечательно подсвечиваются все промышленные постройки, даже фильтр по типам зданий не спасает — со спутника редко можно понять назначение постройки. Зато обновляется слой раз в пять минут. По словам автора, он должен помочь в планировании прогулок с обходными листами.
2012   валидаторы

По шпалам

Две недели назад AMDmi3 написал простой роутер по железным дорогам, и на прошлой неделе он превратил его в... Правильно, валидатор! Выбрав свой регион из списка, можно посмотреть вычисленные расстояния между станциями, сами маршруты на карте, и поправить ошибки в редакторе. Дмитрий напомнил, что точки остановок на путях уже больше года нужно отмечать не как railway=halt или railway=station, но как public_transport=stop_position + train=yes. Также желательно отмечать приоритетное направление движения по путям не как oneway, а тегом designated_direction. За несколько дней количество таких тегов на карте выросло втрое. Наконец, искать неотмеченные станции и разъезды лучше в единой сетевой разметке: да, у нас по валидатору на каждый аспект карты.
2012   валидаторы

Валидатор всего

Медленно набирает популярность последний валидатор от CupIvan, единственного обитателя клуба OSM в я.ру. Он объединяет в себе разрозненные сопоставлялки адресов «Почты России», «Сбербанка России» и прочих россии в один универсальный инструмент. При этом ненайденные отделения валидатор пытается локализовать через геокодер OSM, пусть и не всегда успешно (см. Санкт-Петербург). Добавление наборов данных и регионов автоматизировать невозможно, поэтому обращайтесь к автору, например, на форуме.
2012   валидаторы

ФИО*

Считается, что каждая дорога в OSM должна быть именована. residential без name — ошибка. В реальности названия может не быть, поэтому есть тег noname=yes. Главный источник названий для улиц — таблички. Последних часто может не быть: например, когда по улице нет домов. Для этого тоже есть тег, сообщающий мапперам, что нет смысла выезжать в поле для сбора названий: unsigned=yes.

Несколько лет назад на osm.org был отдельный слой, где были отмечены все дороги без названия. Весной 2011 года Cloudmade, владелец слоя, перестал активно участвовать в жизни OpenStreetMap, из-за чего обновление сначала задержалось (на четыре месяца), а потом снова задержалось (на полгода). Слой с глагне убрали.



В прошлую пятницу Саймон Пул сделал работающую альтернативу. На его слое красным отмечены дороги без названия, оранжевым — проезды и съезды, а пунктиром — дороги с тегами noname и unsigned. В итоге получился сомнительный валидатор: даже некоторые опытные пользователи считают показания валидаторов непреложной истиной и, как следствие, могут броситься расставлять названия на загородных трассах. А новички могут «исправить» и проезды в своём дворе. Или подписать «съезд с КАД на XXX проспект». Кроме того, стали заметны боковые проезды, нарисованные как residential: сообщество весной договорилось о классификации, но забыло про требование названий, ограничившись порицанием приставки «(дублёр)».
2012   валидаторы   теги

Пересчитываем рёбра

Komяpa и Zkir построили на основе валидатора OSRM помощника в починке роутинга, подобного мартиновскому remap-a-tron: при каждом обновлении страницы отображается случайно выбранная проблема с дорожным графом и сразу передаётся в JOSM. Из-за количества проблем предлагается исправлять не всю планету, а избранные территории, наиболее нуждающиеся в заботливой руке маппера. Кирилл также подготовил инструкцию по исправлению основных ошибок.

2012   валидаторы
Ctrl + ↓ Ранее