Другие языки:
Объекты - Основные строительные блоки для данных и карт OpenStreetMap
Можно не спешить читать эту страницу, вы сможете вернуться к ней за справкой в любое время.
Содержание
Точки, линии и отношения
Теги (один из примитивов данных OSM)
Теги придают значение объектам. Без них объекты были бы бесполезными и бессмысленными. Каждый из трёх остальных примитивов данных может иметь один или несколько тегов.
Теги часто используются в комбинациях; обычно эти комбинации можно найти в заготовках. Но может оказаться, что необходимых вам тегов нет в заготовках, и вам нужно будет знать их самому.
Простейший пример — это тег drinking_water=yes — он используется по всему миру, и может быть применён к любому объекту, предоставляющему доступ к питьевой воде. Другой пример — leaf_cycle=* для деревьев. Он применяется не так глобально (поскольку деревья растут не везде).
Время от времени вы будете сталкиваться с тегами, которые пригодны не в вашей местности, а где-то ещё. Не помешает почитать в wiki, для чего нужен данный тег, начните знакомство с этим со страницы Essential links tagging (англ.).
Мы рассмотрим теги более подробно ниже, после того, как познакомимся с другими примитивами данных.
Точки (один из примитивов данных OSM)
Точка (node) — это просто отдельная точка в заданном местоположении. Вместе с соответствующими тегами её можно использовать для обозначения магазинов, скамеек, отдельных деревьев, или мест, где есть доступ к питьевой воде.
В модели данных OSM только точки имеют координаты. Линии и отношения просто ссылаются на точки.
Общие точки
Одна точка может относиться к нескольким линиям, то есть быть их общей точкой.
Практическое значение этого демонстрируется на странице Рисование точек. Инструмент Объединить точки позволяет создавать общие точки.
Линиии (один из примитивов данных OSM)
Линия (way) представляет собой последовательность точек (геометрически — ломаную линию). В OSM линии используются для представления линейных объектов, с соответствующими тегами они могут обозначать: берег реки, линию деревьев, уличные бордюры и т.п.
Направление
Точки упорядочены в OSM, поэтому каждая линия в OSM имеет направление. Это даёт возможность добавлять такие теги, как conveying=* - для указания направления эскалаторов и движущихся дорожек, или incline=*, который можно указывать для дорог и пешеходных дорожек. Есть и другие примеры, рассмотреть здесь их все невозможно.
Сегмент
Это часть линии между двумя её последовательными точками (геометрически — отрезок линии). Он не является частью модели данных OSM, но для пользователя разница между всей линией и её сегментами есть, так как существуют инструменты, которые работают с линией на уровне её отдельных сегментов.
Полигоны
Если линия замкнута, т.е. её последняя точка совпадает с первой точкой, то её называют полигоном (area). Раньше их называли «замкнутыми линиями» (closed way), этот термин ещё встречается в wiki и в некоторых программах. Картографы используют также термин «геометрия объекта», когда говорят просто о форме объекта, без его тегов.
Иногда простого полигона недостаточно для представления объекта (например, озера, в котором есть остров), тогда приходится использовать мультиполигон
Отношения (один из примитивов данных OSM)
В большинстве случаев они вам не понадобятся
Если какой-то объект можно изобразить простой точкой или линией и различными тегами, поддерживаемыми программой, то отношение не нужно. Но в некоторых случаях это оказывается невозможным с помощью только точек, линий и тегов (например, ограничение на поворот — см. ниже).
Поэтому вы можете пока пропустить этот большой раздел «Отношения» до тех пор, пока вам не понадобится добавить или отредактировать отношение.
Простое пояснение
Отношение (relation):
- это последовательность других объектов (точек, линий и других отношений)
- как и другие объекты (точки, линии) - каждое отношение может иметь "теги"
- может быть участников других отношений (получается вложенная иерархическая структура)
- тег type=* используется для указания одного из множества типов отношений
Кроме того, каждому из объектов, участвующих в отношении может быть назначена роль, например, "via" для точки и "from", "to" для линий в отношении type=restriction.
На странице Отношения рассматриваются инструменты, чаще всего используемые для создания отношений в JOSM (диалоговая панель «Отношения», диалоговая панель «Выделение», редактор отношений)
Наиболее популярные типы отношений
type=multipolygon
Водный объект (natural=water
), здание (building=*
) или административная граница (admin_level=*
) часто состоят из нескольких пространственно разделённых частей, принадлежащих одному объекту. Более того, каждая из этих частей может содержать внутри другие, не принадлежащие к ней, объекты (анклавы и эксклавы или просто острова или болота в водных бассейнах).
- Части создаются с использованием роли "
outer
". Каждый мультиполигон должен содержать по меньшей мере одного участника с ролью outer. - Отверстия внутри частей - с ролью "
inner
". Каждая часть может иметь от 0 до N отверстий. - Линии, формирующие контур мультиполигона должны быть соединены между собой общими точками (JOSM предупредит об ошибках во время проверки данных)
- Изредка встречаются вложенные отверстия. Если вложении сложнее, чем один наружний и один внутренний контур, роли могут чередоваться: outer-inner-outer-inner-...
- Внешний и внутренний контур не должны иметь общих точек (валидатор предупредит об этой и других ошибках)
Специфичные для мультиполигонов инструменты:
type=route
Используется для описания маршрутов общественного транспорта или железнодорожных маршрутов вместе с другой транспортной инфраструктурой. (stub)
type=restriction
Можно использовать для создания ограничений на поворот в соответствии с дорожными знаками и разметкой. Для JOSM имеется модуль, поддерживающий редактирование этого типа отношений: модуль Turnrestrictions,примеры
Теги
Тег (tag) — это пара «имя/значение», присвоенная объекту. Теги используются для детального описания объектов. Если мы напишем foo
=bar
, то это значит Тегу с именем foo присвоено значение bar. Вот несколько примеров:
- тег
name
=Главная Дорога
присвоен линии. Это означает, что имя данной линии -Главная Дорога
. - тег
natural
=tree
присвоен точке. Он указывает, что эта точка представляет собой дерево в реальном мире. - тег
route
=bus
присвоен отношению. Следовательно, данное отношение описывает маршрут автобуса.
Объект может иметь столько тегов, сколько необходимо. Вот более сложный пример:
highway=residential name=Main road name:en=Main road name:ru=Главная дорога maxspeed=30 hgv=no oneway=yes
Будучи присвоенным линии, этот набор тегов означает, что линия представляет собой улицу в жилой зоне с названием Main road (также задано имя на русском - Главная дорога и на английском, в данном случае совпадающее с "общим" названием - Main road). Скорость ограничена 30 км/ч, и движение тяжёлых грузовых автомобилей (heavy goods vehicles - hgv) запрещено. Кроме того, это улица с односторонним движением.
В диалоговой панели «Теги/Участие» можно назначать теги объектам, удалять и изменять их теги.
Технические подробности
Идентификаторы объектов (Object ids)
OSM сервер присваивает каждому объекту уникальный номер - object ID или OSM ID. Новый объект не имеет идентификатора (ID = 0) до тех пор, пока он не будет первый раз загружен на сервер OSM.
Сервер OSM присваивает каждому объекту уникальный номер — идентификатор объекта или OSM ID.
В JOSM, новый объект не имеет ID (точнее, его ID = 0), пока он не будет отправлен в первый раз на сервер OSM.
- В диалоговом окне Настройки (F12) -> Display Settings -> Настройки отображения можно включить/отключить показ идентификаторов объектов в окнах.
- С помощью команды меню Файл -> Скачать объект... можно скачивать объекты по их идентификаторам.
Версии объекта и история
Номера версий были реализованы для упрощения редактирования в wiki-стиле. К сожалению, для отслеживания изменений в линиях или отношениях необходимо использовать более сложные инструменты, чем простое сравнение номеров версий.
- Содержимое отношения можно изменить, не изменяя версию или ID отношения (т.е. изменить лишь входящие в него линию, точку или дочернее отношение).
- Содержимое линии можно изменить, не изменяя её версию или ID (точку линии можно переместить туда-сюда несколько раз, но ID линии при этом останется тем же самым).
Но вы всегда можете отследить полную историю одной точки в журнале. Также можно использовать данные в разрезе времени («снимки» регионов на конкретные даты), чтобы проверить, какие изменения вносились в объекты (и сслыку на ID объекта и точку во времени из базы данных).
Информация о последней версии
- Вид -> Расширенная информация открывает отдельные окна с информацией в текстовом формате о выделенных объектах.
- Вид -> Расширенная информация (на сайте OSM) открывает страницы выделенных объектов на веб-сайте OSM в вашем веб-браузере.
Кроме того, вы можете просматривать объекты непосредственно, введя следующий адрес в адресной строке браузера:
https://www.openstreetmap.org/browse/[node/way/relation]/[ID]
История объекта
Каждый объект имеет версию, которая увеличивается на единицу при каждой отправке объекта на сервер. Сервер OSM хранит не только самую последнюю версию объекта, а и всю его историю.
- Команда Вид -> Журнал открывает обозреватель истории, в котором можно увидеть версии объекта.
- Альтернативная команда Вид -> История (на сайте OSM) открывает в веб-браузере страницу веб-сайта OSM с историей объекта.
Назад к Основной странице