RU:Теги для сети велосипедных маршрутов
Граф велосипедных точек
Основы были взяты из обсуждения на talk-nl в сентябре 2008 года, а через несколько месяцев после этого они были конкретизированы. Эта маркировка в настоящее время активно используется в некоторых частях Нидерландов и Бельгии, а теперь, к 2021 году, также широко применяется в Германии.
Эти уточняющие теги основаны на следующих реальных наблюдениях:
- сеть велосипедных точек охватывает ограниченную географическую область и имеет название
- сеть имеет несколько пронумерованных узлов соединения, и знаки на этих узлах соединения показывают имя сети (в идеальном мире; не универсальное соответствие во Фландрии; в Германии это исключение — "сети", обозначенные в отношениях, в большинстве случаев без привязки к местности и использовались только для структурирования большого объёма данных)
- есть знаки на точках соединения и между ними, указывающие, как пройти к ближайшим местам соединения
- сети соединяются с другими сетями (маршруты, которые образуют соединение, получают роль 'connection' в обоих отношениях в сети)
- маршруты могут следовать по разным дорогам в зависимости от направления движения (это может происходить из-за улиц с односторонним движением, велосипедных полос по обеим сторонам улиц и кольцевых развязок с разделёнными дорогами).
- переходы могут быть разделены, при этом переходы с одинаковыми номерами находятся на небольшом расстоянии друг от друга (обычно менее нескольких сотен метров)
- есть несколько точек, которые входят в 2 сети. Эти узлы также получают роль 'connection' в отношение сети.
- есть маршруты, которые ведут велосипедиста к интересующему пункту, центру города или деревни. Эти маршруты не всегда подключаются к пронумерованной точке, они часто подключаются в середине другого маршрута. Эти маршруты получают дополнительный тег: state=connection и примечание вроде note=34-35 - 57-98 или note=55-89 - Alkmaar Centrum
И следующие технические наблюдения OSM:
- отношения могут быть нарушены из-за ошибок редактирования, недопонимания пользователей или плохого программного обеспечения
- таким образом, полноту сети можно отслеживать с помощью более умных тегов
Как?
(A) Теги для точки
Все пронумерованные соединительные точки в сети помечают тегами:
Ключ | Значение | Описание |
---|---|---|
rcn_ref | номер | Ссылочный номер перекрёстка. Его можно найти на дорожных указателях или сделать вывод из них. Часто это двухзначное число. |
network:type | node_network | Определяет точку как часть графа. |
expected_rcn_route_relations | число | (необязательно) Может быть установлено количество отношений, заканчивающихся и начинающихся в этой точке (соединении). Это может использоваться для облегчения (автоматической) проверки отсутствующих маршрутов. Считайте только постоянные маршруты, отношения маршрута с state=connection или state=alternate не учитываются в ожидаемых отношениях маршрутов. |
Больше нет необходимости в теге network=rcn. rcn_ref=xx и взаимосвязь отношения для сети проясняет это достаточно ясно. Некоторые точки также являются частью других сетей и могут иметь rwn_ref=yy.
(B) Теги для маршрута
Маршруты, составляющие сеть, являются частью отношения type=route:
Ключ | Значение | Описание |
---|---|---|
type | route | |
route | bicycle | |
network | rcn | |
network:type | node_network | Определяем маршрут как маршрут в сети велосипедных точек. |
ref | 04-35 | Меньшее число ставится первым, чтобы упростить поиск в отсортированном списке. |
state | пустой, 'connection' или 'alternate' | Не устанавливайте это для обычных маршрутов (необязательно) connection, если маршрут соединяет POI или центр города или деревни с сетью (или) (необязательно) alternate, если это альтернативный маршрут между перекрёстками (это может быть срез или просто еще один маршрут передвижения между перекрёстками) |
Примечание
В Германии есть также маршруты, отличные от «Сети велосипедных маршрутов», отмеченные тегом network=rcn. Они были там до того, как в Германии появилась сеть и никуда не денутся. Эти маршруты обычно обозначаются ref=‹2 или 3 символа›. Ключ network:type используется для того, чтобы отличать сетевые маршруты от других региональных маршрутов.
Участниками этого отношения являются:
- Все линии, составляющие маршрут между двумя точками соединения, с соответствующими ролями forward/backward, если необходимо (используются разные линии, перехода с xx-yy, чем с yy-xx, нет необходимости добавлять роли на перекрёстках с круговым движением, которые используются для обоих направлений движения). Все эти роли означают, что основная линия следует в направлении его стрелок для этой конкретной ветви маршрута.
- Нет необходимости добавлять узлы соединения к этому отношению. Они являются частью пути, поэтому по сути уже являются его частью. Это позволяет использовать более контролируемый способ загрузки иерархии (collection/network/route).
Разделите точки и ответвления, расширяя маршруты, чтобы соединить их
- Когда маршрут начинается или заканчивается в наборе разделённых точек, все линии, ведущие к его началу от одного из других узлов, добавляются до начала или после конца. И это таким образом, что линии, ближайшие к начальной или конечной точке, также являются ближайшими в отношении (их порядок меняется на обратный после конца маршрута). Все эти пути также требуют соответствующих ролей, ведущих велосипедистов к начальной или конечной точке. Идея, лежащая в их основе, заключается в том, что когда вы прибываете к пронумерованной точке из сети велосипедных маршрутов из другого маршрута, вы можете посмотреть отношения на других линиях, ведущих к этой точке, и выбрать нужное вам отношение маршрута. В этой связи вы узнаете, как добраться до начала маршрута, по которому вы хотели следовать. Они немного похожи на щупальца (ответвление) в начале и в конце маршрута и нужны только тогда, когда это нужно. Невозможно выбрать одну единственную точку в качестве пронумерованной сети точек.
Это сделано для того, чтобы дать людям представление о местонахождении обсуждаемой нами разделительной точки.
25-26
- 1, 6 (не показаны) линии участников маршрута, используемые в обоих направлениях (назначение ролей не требуется).
- 7,8,9 конец маршрута, идущий от 25, для движения с 25 по 26. 25-26 заканчивается развилкой.
- 10,11,12 начало фактического маршрута с 26 по 25 (участники имеют роли и, кажется, идут в обратном порядке).
- 13,14 одно щупальце, ведущее движение, идущее от 27 до фактического начала этого маршрута (линии, которые являются членами щупальца, всегда имеют роли, и они кажутся в обратном порядке, потому что они выходят за пределы точек с более большим номером).
- 15,16 ещё одно щупальце, ведущее движение, идущее с 98-го до фактического начала этого маршрута.
- Для трафика, идущего от 30, дополнительные щупальца не требуются, так как конечный узел 26-30 совпадает с фактическим началом 25‑26.
- Важно отметить, что простое изменение порядка следования всех участников отношения маршрута всё равно приведет к действительному маршруту, который затем может быть получен ref=26-25. Я бы предпочёл следовать соглашению, чтобы всегда идти от низкого к высокому уровню. Это должно объяснить, почему порядок некоторых членов кажется обратным.
26-27
- 1 щупальце для велосипедистов до точки 30.
- 2 ещё одно щупальце для велосипедистов из точек 25 или 98 (порядок щупалец 1 и 2 можно легко поменять местами).
- 3-12 часть маршрута, которую необходимо пройти при переходе от 26 (меньше) к 27 (больше).
- 13-18 часть маршрута, которую необходимо пройти при переходе от 27 (больше) к 26 (меньше). Исключительно то, что такая развилка (ветка) продолжается до следующей пронумерованной велосипедной точки, как здесь. Следовательно, все линии в этом отношении будут иметь значение — forward или backward.
26-30
- 1,2,3,4 щупальца, ведущие движение, идущий с 25 и 98 до фактического начала 26-30.
- 5,6,7,8,9 линии для движения из точки 26 в 30.
- 10-17 линии для маршрута из точки 30 в 26. Обратите внимание, что JOSM не может показать, что они непрерывны, потому что для JOSM эта развилка (ветка) начинается далеко (то есть JOSM не может найти связь с остальной частью маршрута). Когда эти элементы меняются местами, они кажутся непрерывными (и даже весь маршрут кажется непрерывным), но тогда весь маршрут больше не может быть перевёрнут и по-прежнему дает действительный маршрут. Таким образом, хотя это выглядит странно, это правильный порядок для этих участников маршрута.
26-98
- 1,2 первая половинка щупальца.
- 3,4 вторая половина другой и отдельное щупальце (это показывает, что щупальца могут быть «телескопическими»).
- 1,2,3,4 ведёт с маршрута 26-27 на маршрут 26-98.
- 3,4 ведёт с маршрута 26-30 на маршрут 26-98.
- 5 первая линия фактического старта маршрута (больше нет необходимости в ролях, а у щупалец всегда есть роли).
- 6,7,8,9,10,11,12 остальная часть маршрута, ведущая к 98.
Для тех, кто едет из 98, первые 26, которых они достигают — это конец их путешествия по этому маршруту. Независимо от того, каким маршрутом они хотят идти сейчас, они могут начать следовать за щупальцами, которые приведут их к следующему началу желаемого маршрута, а затем дальше.
(C) Теги для сети
Создается одно отношение для каждой (названной) сети велосипедных точек. Это отношение описывает все элементы сети.
Ключ | Значение | Описание |
---|---|---|
type | network | Обозначает, что это отношение представляет собой совокупность всех соединений и маршрутов, составляющих сеть. |
network | rcn | Обозначает, что это сеть велосипедных точек. rcn — в настоящее время это признанный тег для сети велосипедных точек в Бельгии, Нидерландах и Германии. |
network:type | node_network | Определяем маршрут как маршрут в сети велосипедных точек. |
name | Название | Название сети (например, «Fietsroutenetwerk Zeeland»). |
operator | operator | Название оператора сети (например, «Toerisme Oost-Vlaanderen». |
Это отношение содержит:
- Все пронумерованные соединительные точки (A) этой сети велосипедных точек. Не добавляйте соединительные точки на противоположном конце маршрутов с ролью role=connection, так как они являются членами другой сети.
- Все маршруты (B), составляющие эту сеть велосипедных точек.
- Маршруты, соединяющиеся с другими сетями, получают роль role=connection.
Если точка соединения находится в двух сетях (что может произойти в приграничных областях), она добавляется к обоим этим сетевым отношениям и получает роль role=connection для согласованности.
Все точки и маршруты с ролью role=connection должны быть участниками в двух сетевых отношениях.
В некоторых случаях очень большая сеть делится на отдельные области (подсети). В этом случае может быть создано другое отношение вышеупомянутого типа, которое содержит в качестве членов только отношения для подсетей. Пример: указанная выше сеть разделена на подсети , например «Oost Zeeuws-Vlaanderen» и «Schouwen-Duiveland». В этом случае родительские отношения содержат название всей региональной сети, а дочерние отношения содержат имя определённой части сети. Точки соединения (теоретически, поскольку существуют исключения) однозначно пронумерованы внутри подсети, но, скорее всего, будут повторяться в других подсетях.
(D) Теги для коллекции
Создаётся одно отношение для каждого набора сетевых отношений. На данный момент есть один для Бельгии. Один для Нидерландов будет создан в ближайшее время.
Ключ | Значение | Описание |
---|---|---|
type | collection | Обозначает, что это отношение представляет собой коллекцию всех сетей в данной области |
network | rcn | Обозначает, что это сеть велосипедных точек. rcn — это в настоящее время признанный тег для сети велосипедных точек в Бельгии, Нидерландах и Германии. |
name | Название | Название сети (например, «Fietsknooppuntennetwerken in België». |
operator | operator | Название оператора сети (например, «Toerisme Vlaanderen». |
Это отношение содержит:
- Все сети в данной области
Его можно использовать в качестве отправной точки для загрузки всех сетей велосипедных маршрутов для страны с серверов или в качестве отправной точки для сценария, выполняющего некоторый контроль качества. При загрузке будет загружено только отношение, а не все его участники и участники участников. Правой кнопкой мыши выберите элементы в отношении, а затем нажмите правой кнопкой мыши и загрузите недостающие элементы для всех сетей, а затем для всех маршрутов, в результате получится «скелет» всей коллекции сетей, их маршрутов и пронумерованных точек соединения. После загрузки сетевых отношений в автономном редакторе, таком как JOSM, будут видны только пронумерованные точки соединения.
Преимущества
- «Отмечайте то, что находится на земле»
- Это точки, которые именуются или пронумерованы и являются частью сети.
- Представлена иерархия
- Можно найти и назвать определённые сети. Точки соединения могут быть идентифицированы. Теперь можно создавать карты для определённых сетей.
- Избыточность уменьшена.
- В Нидерландах имя раньше повторялось на каждом маршруте, но теперь оно устанавливается один раз в сетевом отношении, а теги с именем удаляются.
- Программные проверки на полноту
- Полный маршрут теперь будет содержать непрерывную цепочку линий, соединяющих конечные точки (простейший случай).
- Иногда маршруты разветвляются (из-за велосипедных дорожек по обеим сторонам улицы, улиц с односторонним движением, кольцевых развязок с разветвлёнными линиями и так далее). В этом случае сначала линии, идущие от точки с меньшим номером к большему номеру, добавляются с ролями, пока не найдём место, где ветви снова соединяются. Затем линии, по которым произошло разделение, переходят в обратные роли. Конечным результатом является то, что при проверке непрерывности можно взять всех членов без ролей и первый непрерывный набор элементов ветви для проверки направления от меньшего к большему номеру.
- Полный маршрут теперь будет содержать непрерывную цепочку линий, соединяющих конечные точки (простейший случай).
Для другого направления (от бо́льшего к ме́ньшему) можно взять всех участников без роли, а остальных участников с ролью, которая не использовалась на предыдущем шаге, а затем полностью изменить весь набор линий.
- На этом этапе неважно, прямая это роль или обратная. Фактически большинство будет вперёд (из-за улиц с односторонним движением). Важен порядок участников отношения маршрута. Первый набор после ветвления принадлежит группе меньше → больше, набор после него до тех пор, пока ветви снова не сойдутся вместе, принадлежит группе элементов больше → меньше.
- В начале и в конце маршрутов можно встретить некоторых участников с ролями. Это «подсказки», показывающие, как перейти от разделённой конечной точке к фактическому началу маршрута, по которому нужно следовать (в самом начале маршрута либо есть пронумерованная точка, либо все эти щупальца сходятся там). То же самое применяется за пределами конца маршрута (все они находятся в процессе сортировки от точки с меньшим номером к точке с более большим номером), но в обратном порядке.
Смотрите скрипт Python, который выполняется в JOSM в качестве примера реализации.
Примеры уже существующих отношений для маршрутов
- Altena Biesbosch Altena Biesbosch
- Oost Zeeuws-Vlaanderen Oost Zeeuws-Vlaanderen
- Meetjesland Meetjesland
- Limburg (Бельгия) Limburg (Бельгия) (в настоящее время не содержит соединений, только точки)
- Fietsroutenetwerk Antwerpse Kempen Fietsroutenetwerk Antwerpse Kempen
JOSM
Polyglot сделал несколько стилей и других инструментов, чтобы упростить редактирование сетей велосипедных точек в JOSM. Вы можете найти их здесь: User:Polyglot/Some ways to simplify editing cycle node routes with JOSM