RU:OSM tags for routing
Какие объекты карты из базы данных OpenStreetMap могли бы быть вам полезны при решении задач маршрутизации?
Данная страница содержит инструкцию о том, какие существующие, регулярно и единообразно используемые теги следует учитывать при построении маршрутов и как их следует учитывать. Если возникает новый тег, описывающий что-либо способное повлиять на маршрутизацию, такой тег и его значение для маршрутизации должны быть добавлены в эту статью.
Одностороннее движение
Дорога является односторонней если и только если: (регистр значения не имеет)
- oneway=yes или
- oneway=true или
- oneway=1 или
- oneway=-1 (обозначает направление противоположное направлению линии) или
- junction=roundabout или
- highway=motorway или
- highway=motorway_link
и
- "oneway"!="no" и
- "oneway"!="false" и
- "oneway"!="0"
(oneway=no может выставляться на некоторые highway=motorway)
area:highway=service/residential/unclassified/tertiary/secondary/primary/trunk
Тег area=yes может использоваться для обозначения некого пространства, например рыночной площади, при этом сочетание, например, area:highway=residential означает, что по данному пространству можно проехать на машине в любом направлении, от любой одной крайней точки до другой. (тег highway описывает роутинговую линию, а не полигон)
Такое тегирование не имеет проблем, возникающих при совместном использовании на полигонах тегов area=yes и, например, highway=residential.
Именование
Следующие теги могут содержать то или иное название дороги:
См: именование
Существует также внешний xml-вебсервис, который может проделать поиск за вас.
Городские/загородные дороги
Нижеследующее представляет собой попытку составить алгоритм для определения
- находится ли локация в пределах данного города/страны/почтовой зоны
- какой город/страна/почтовая зона находится в данной локации
Мы пытаемся учесть все принятые и используемые на данный момент теги и ранжировать их в определённом порядке важности. Так что вам не нужно проделывать всю эту работу снова, если вы планируете использовать алгоритм.
Город
Линия находится внутри административного образования, если и только если:
- а) Она специально отмечена тегом is_in=*. (в России не принято использовать)
- б) Она находится внутри полигона или мультиполигона
- б1) отмеченного тегом place=*
- б2) отмеченного тегами boundary=administrative и admin_level=8
- в) Она не находится внутри полигона, но существует точка с тегом place=* внутри полигона, отмеченного тегом landuse=* со значением, отличным от "farm" (ферма), "quarry" (карьер), "forest" (лес) или "water" (водоём) и линия находится внутри комбинации этого полигона и всех пересекающихся с ним или расположенных рядом полигонах подобного рода (такое довольно сложно внедрить, но это вполне действенно)
- г) Ничего из вышеперечисленного, но есть точка с тегом "place"= менее чем в XX километрах от данной линии.
Для случая (г) существенными вариациями являются:
- расстояние вокруг точки задано тегом радиуса в метрах или километрах.
- при отсутствии тега радиуса, вот значения по умолчанию:
Тег | Элемент | Радиус |
---|---|---|
place=continent | не нужен, у континентов уже должны быть полигоны границ | |
place=country | не нужен, страны уже должны иметь полигоны границ | |
place=state | не нужен, штаты, области или иные подобные административные единицы должны иметь полигоны границ | |
place=region | 500 км | |
place=county | 200 км | |
place=city | 10 км | |
place=town | 5 км | |
place=village | 1 км | |
place=hamlet | 300 м | |
place=suburb | 300 м | |
place=island | не нужен, острова должны иметь очерченный полигон береговой линии |
Почтовый индекс
Страны
Это тема всё ещё обсуждает в списке рассылки OSM-Dev.
Текущий прогресс задокументирован в статье Tagging Country Borders.
Дороги
Только линии, помеченные тегом highway=*, являются дорогами (роутинговыми линиями), по которым может осуществляться маршрутизация автомобильного, мотоциклетного и пешего движения.
При построении маршрутов для транспортных средств избегайте значений "footway", "pedestrian", "steps", "gate", "stile", "cattle_grid", "viaduct" и учитывайте ограниченность использования "ford", "service"/"services" при прокладке пути.
Дорожные сигналы
Стоит ограничивать предельно допустимую скорость в местах пересечения линии дороги с точками, помеченными highway=traffic_signals, highway=stop, barrier=toll_booth, traffic_calming=* также как и incline=*.
Ограничения доступа
Значения ограничения доступа по умолчанию для каждого типа транспортных средств и каждого типа дороги задокументированы в Access-Restrictions.
Для вычисления ограничений доступа при наличии на пути смеси значений по умолчанию и конкретизированных данных, см. Computing access restrictions.
Ограничения направления движения
Ограничения различных видов поворотов на перекрёстках задокументированы в RU:Relation:restriction.
Ограничения скорости
Если максимально допустимая скорость не задана специально при помощи maxspeed=* см. соответствующий параграф.
Маршрутизация к почтовому адресу
См. addr:*=* для детальной информации об адресах.
Дальнейшее чтение
- работа над маршрутизацией для инвалидов-колясочников (в Германии)
- работа над маршрутизацией для слабовидящих: LoroDux