Узлы безумия

Сегодня Мартин Коппенхёфер опубликовал пропозал моей мечты под названием «Node relations». В нём он предлагает в ситуации, когда, например, на одном столбе несколько разных знаков, не накладывать точки одна на другую, и не пользоваться мерзким «;», а создавать «виртуальные узлы» с помощью отношений. В отношении type=node может быть только один член — точка — и какие угодно теги.

Это ещё один шаг к разделению геометрии и её свойств. Когда-то давно я предлагал радикальное изменение модели OpenStreetMap: запретить теги на точках и линиях, все сущности обозначать отношениями. Если вдобавок освободить отношения от геометрического смысла (т. е. вместо мультиполигонов сделать тип area), это устранит все двусмысленности в данных, позволит сохранять идентификаторы при перерисовке геометрии, позволит объединять, например, линии в сущность «улица», и заставит, наконец, программистов сделать нормальное редактирование отношений.

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

До 19 июля идёт голосование за обозначение портов и перегрузочных терминалов. Голосуют пока какие-то незнакомые люди. Рассылку tagging@ читают всё меньше нормальных людей, проще изучить C++ и уйти в программирование, чем спорить с тегоманьяками. Недавно, вон, кто-то предложил способ обозначения дверей, так его оборвали на полуслове: был уже такой, отклонили восемью неизвестными. Автор в сердцах написал за ночь 30 килобайт второй версии пропозала, и с лёгким сердцем выкинул его из головы.

Поделиться
Отправить
6 комментариев
freeExec

Я раскрыл твой коварный план, цель его была

заставит программистов сделать нормальное редактирование отношений.

Непонятно почему только ноды, а не линии тоже.

fserges

Проекту надо взрослеть. Вместо этого видно что многие из тех кто начинал бояться изменений ...

AHTOH

Да пофигу на реализацию! Дайте нормальный инструмент для отношений. А то я их боюсь и не понимаю :)

Илья Зверев

Самое лучшее на сегодня — плагин Relation Toolbox для JOSM.

Мак Сим

Интересно было бы услышать про структуру данных у альтернативных проектов: Яндекс карты, Google Карты, 2 GIS. У них геометрия и свойства разделены?
Хотя если у них схема теггирования жёстко прописана, и не позволяет сочинять свои стандарты, то им наших проблем не понять :)

Виктор

Все-таки бездумное разделение геометрии — плохой процесс. Тут надо понять, что геометрия — это только точки. Линии уже сами по себе отношения или проще говоря примитивом может быть только отрезок из двух точек. Например, OSM можно видеть как происходит дробление линий — улица одна большая делится на 20-30, потому что по одному отрезку идет автобус, в другом освещение другое, в третьем покрытие плохое и т. д.

К тому же, я поддерживаю инициативу о появлении примитива <area>, который в данном разрезе противоречит разделению геометрии и свойств и предполагает описание точек внутри самого area.

Наверное, я предложу похожую схему , что Zverik имел в виду : я бы создал новые объекты и внес геометрию area > line-segment (ring) > node, line > line-segment > node, point > node и  запретил объявлять теги на node и line-segment. relation бы оставил, хотя длинные линии можно было бы задавать через вложенные line-segment > line-segment.

Для того, чтобы не получить те же яйца вид сбоку. необходимо, чтобы редактор правильно обрабатывал и показывал и редактировал line-segment, но это уже не такая проблема, потому что line-segment жестко привязан к непрерывной (!) геометрии (в отличии от не пойми чего абстрактного relation)

keder

Вот это уже дело, разделение геометрии и свойств на мой взгляд очень помогло бы улучшить поиск. Вот например при поиске «Ленинского проспекта» он мне выдаёт кучу геометрий улицы вместо самой улицы (а по отношениям associatedStreet он не ищет).