RU:Отношения
Отношения (Relations) используются для указания географической взаимосвязи между различными объектами (когда они, к примеру, пересекаются или граничат друг с другом). Отношения были реализованы в API версии 0.5 от 8 октября 2007 года.
Благодаря этому информацию, которая распространяется на всё отношение, можно хранить на одном уровне, нет необходимости дублировать её для каждой точки или линии. Тогда, если значение тега меняется (например, изменится организатор автобусного маршрута), достаточно будет обновить его только в одном месте вместо того, чтобы менять для каждого элемента в отдельности.
Отношения также помогают наложить географическую структуру, т. е. сообщить, что объект особым образом связан с другими в группе, например, что нельзя проехать с одной дороги на другую, даже если они соединены.
Отношения немного сложнее для понимания, чем линии или точки, к тому же не во всех редакторах есть полная поддержка отношений. Поэтому отношения рекомендуется использовать расчётливо и только в хорошо понятных вам ситуациях.
Основные понятия
- Объяснение на более доступном (не техническом) языке доступно в статье Relationships.
Отношение может состоять из точек и линий. Ему может быть присвоено несколько тегов, самый важный из которых – type. В базе данных запоминается последовательность, в которой элементы расположены в отношениях. Это может быть полезно для некоторых типов отношений, но пока реализовано не во всех редакторах (в JOSM реализовано, в Potlatch 1.4 нет). Каждый элемент в таком отношении может играть свою роль.
Например, для автобусного маршрута может быть установлено отношение с тегами type=route, route=bus, ref и operator. Оно будет состоять из линий, по которым следуют автобусы, и точек, которые будут обозначать автобусные остановки. Этим линиям будут присвоены роли (тег ‘role’) forward (вперёд) или backward (назад), в зависимости от направления, в котором автобусы следуют по линии (если автобус следует в обоих направлениях, то роль может быть не определена).
Обычно в процессе редактирования практично сначала создать линии и точки, а затем само отношение. После этого хорошо добавить несколько тегов, которые будут его идентифицировать. Благодаря этому впоследствии отношение будет намного легче отыскать!
Если вы решили создать для маршрута отношение, то необязательно знать этот маршрут во всех подробностях. Но если вы знаете только его часть, будет неплохо проверить, что отношение для маршрута пока ещё никем не создано.
Отношение может быть составлено в так называемое "родительское/материнское/отцовское". Для этого в JOSM выберите отношение, и затем в поле отношений нажмите "Добавить выделенное", чтобы присоединить его к другому отношению.
И, пожалуйста, запомните: отношения не созданы для того, чтобы категорировать или коллекционировать объекты - RU:Relations/Relations are not Categories
Начало работы
Чтобы создать новое отношение в Potlatch, выделите линию или точку и нажмите в нижнем правом углу экрана кнопку с изображением двух сцепленных колечек. До этого было бы неплохо взглянуть на похожее отношение и на теги, которые ему присвоены (чтобы получить доступ к тегам отношения, выделите один из его элементов и нажмите "tag" для этого отношения). Вы должны будете ввести их вручную.
Чтобы добавить в отношение новый элемент в Potlatch, выделите сначала какой-нибудь элемент, уже принадлежащий отношению (желательно элемент, который принадлежит только этому отношению). Затем выделите новый элемент и, удерживая Shift, нажмите кнопку с изображением двух сцепленных колечек (благодаря этому принадлежность к отношению копируется с ранее выделенной линии на ту, которая выделена сейчас). Также копируются роли, которые вам, возможно, придётся изменить. Кроме того, вы можете выбрать отношение из тех, что расположены поблизости, но если таких отношений много, это трудоемко.
Чтобы создать новое отношение в JOSM:
- Нажмите кнопку "Create a new relation" (Создать новое отношение) на Панели отношений
- В окне "Create new relation" добавьте необходимые теги
- Нажмите OK, чтобы закрыть окно "Create new relation"
Чтобы добавить новый элементы к отношению в JOSM:
- Выделите в главном окне линии и точки, которые необходимо добавить к отношению
- Выберите нужное отношение из списка отношений на Панели отношений
- Нажмите кнопку "Open an editor for the selected relation" (Запустить редактор отношений для выбранного отношения)
- В окне "Edit relation" (Изменить отношение #...) выберите элемент (если он отобразился), который должен стать новой линией или точкой в отношении, и нажмите соответствующую кнопку "Add all primitives..." (Добавить все объекты...)
- Нажмите OK, чтобы закрыть окно "Edit relation" (Изменить отношение #...)
JOSM позволяет сортировать элементы в отношениях. Рекомендуется делать это с отношениями для маршрутов.
Виды отношений
type | описание | фотография |
---|---|---|
associatedStreet | Элементы, связанные с улицей. См. схему Карлсруэ | |
boundary | Для группировки и обозначения границ, замкнутых территорий | |
bridge | Группирует все элементы моста | |
building | Группирует части здания сложной формы | |
destination_sign | Знаки-указатели направления движения, установленные перед или на самом перекрёстке | |
enforcement | Устройства контроля за движением, камеры определения скорости движения, устройства для взвешивания автомобиля, ... | |
multipolygon | Для полигонов, контур которых состоит из нескольких линий, или имеющих «дырки»; также используется для границ | |
public_transport | Часть OSM public transport scheme (Основная транспортная схема OSM). В основном используется как public_transport=stop_area. | |
relatedStreet | Широко распостранён, является синонимом для отношения associatedStreet | |
restriction | Для обозначения любого вида запретов | |
route | Например, автобусные, велосипедные маршруты и нумерация дорог | |
site | Отношение группы элементов, расположенных на определённой территории или площадке, например школа и все связанные с ней объекты. Тег site=stop_area был заменен на public_transport=stop_area | |
street | Отношения Relations/Proposed/Street, Relations/Proposed/Collected_Ways и Relations/Proposed/Collected_Ways_Simple придуманы для улучшения associatedStreet | |
waterway | Отношение группы элементов водного пути waterway=* |
Роли
role это дополнительная текстовая область, описывающая функцию участника отношения.
Примеры использования role
- role=east показывает, что дорога отмечена словом East на табличке с номером маршрута (принято в Северной Америке).
- В отношении типа multipolygon, role=inner и role=outer используются, чтобы указать, является ли линия внутренней или внешней частью этого мультиполигона.
Предлагаемые области использования отношений
Объединение и выделение линий и тегов
- Relations/Proposed/Composite Tag — часто применяется, когда атрибут является ограничением по времени доступа или по классу транспортного средства
- Relations/Proposed/Segmented Tag — используется, когда тег или набор тегов должен быть назначен на часть (сегмент) линии
- Relations/Proposed/Collected Ways — группировка линий в полную улицу, реку, железнодорожный путь и т. п.
- Relations/Proposed/Dual carriageways — группировка параллельных линий, образующих дорогу с двусторонним движением
- Relations/Proposed/Circuit — обозначение особых видов кругового движения, например в автоспорте
- Relations/Proposed/Street — группировка элементов в полную улицу и привязка к ней других элементов
- Relations/Proposed/Curvature — указание кривых и прямых частей линии
- Relations/Proposed/boundary_segment — группировка отдельных линий в линейную границу
Соединения, пересечения, пересечения на различных уровнях (например, пересечение дороги и реки)
- Relations/Proposed/Junctions — все линии, образующие пересечения (например, перекрёсток автострад)
- Relations/Proposed/Bridges and Tunnels — мосты и туннели
- Relations/Proposed/Embankment — набережная
- Relations/Proposed/Turn hints — подсказки перед поворотом (плавный поворот налево, крутой поворот налево, развилка и т. п.)
- Relations/Proposed/turn lanes — повороты, разрешённые с данной полосы
Запреты поворотов, правила проезда
- Relations/Proposed/Right of way — определение правил проезда перекрёстков равнозначных дорог
- Proposed_features/Relation:type=stop — определение знаков «Проезд без остановки запрещён» более гибко, чем с помощью highway=stop
Иерархии областей и другие взаимосвязи областей
- Relations/Proposed/Region — задание региона (области) – это простой, но мощный способ представить много параллельных иерархий на карте (районы города, области государства, вершины гор и т. д.), при этом заимствуются некоторые идеи от других отношений и суждений и заменяются некоторых из них
- Relations/Proposed/Level — для многоэтажных и трёхмерных объектов (станции метро, здания и др.)
- Relations/Proposed/Is In — все места, которые занимают большие пространства (такие как все города в стране)
- Relations/Proposed/Buildings — для зданий, при обозначении которых вы хотите описать его контуры, входы, периметр окружающего забора
- Relations/Proposed/Site — для группировки здания и других элементов окружающей местности (школа, ж/д станция и т. п.)
- Relations/Proposed/Hint — подсказки для рендереров и API для обработки больших областей
- Relations/Proposed/Label — метки (label), установленные вручную для областей
- Relations/Proposed/Country — сбор данных о стране
- Relations/Proposed/Associated_Entrance — объекты, связанные с входами в здание
Адресация
- Схема Карлсруэ
- Почтовые адреса
- Relation:postal code — почтовый индекс
- Relations/Proposed/Street — группировка линий и других связанных с ней элементов в полные улицы
Другое
- Relations/Proposed/Lane — дополнительная информация о дорожной полосе движения (полоса для автобусов, полоса для двух и более машин, велодорожка, велотрек и т. д.)
- Relations/Proposed/Area — обозначение области между линиями и полосами движения (разделителей полос движения), виртуальных и физических разделителей, возможности пересекать эти разделители и т. д.
- Relations/Proposed/Rivers — широкие реки, где обозначены оба берега, см. также тег waterway=riverbank
- Relations/Proposed/Traffic Lights — светофоры
- Relations/Proposed/Height Weight Length Restrictions — ограничения высоты, веса, длины
--
- Relations/Proposed/Campus — группировка элементов (здания, дорожки и др.), находящихся внутри территорий университетов, больниц, общежитий и т. п.
- Relations/Proposed/Overtaking — описание зон безопасного обгона
- Relations/Proposed/Operators — обозначение филиалов и других объектов, принадлежащих какой-либо организации
- Relations/Proposed/Sled — группировка всех элементов, связанных с санным путём
- Relations/Proposed/Surveillance — соединения камер наблюдения и их зон видимости
- Relations/Proposed/add admin_centre in Relation:boundary — усовершенствованное отношение для административной границы
- Relations/Proposed/Directional node — точка, указывающая в определённом направлении
- Relations/Proposed/Geometry — указание определённой формы группы узлов
- Relations/Proposed/Defaults — определение набора значений по умолчанию (скоростных ограничений, одностороннего движения, доступа) для страны, штата
- Relations/Proposed/Health — описание сложных отношений, связанных со здравоохранением (территории, здания, офисы, лица, службы)
Инструменты
- Пример отношения: Example id=11
- История этого отношения: Example id=11
- Отрисовка отношения: Example id=11
- Отображение отношения на карте
- Анализатор отношений в OSM
- Проверка отношений(англ.)
- Сравнение отношений(англ.)
- Списки отношений(англ.)
- Rel2gpx(англ.)
|