RU:Связность дорожного графа
From OpenStreetMap Wiki
Openstreetmap - база данных, которая используется в том числе и для построения маршрутов.
Чтобы маршруты строились корректно, дорожный граф должен удовлетворять определённым требованиям.
Для лучшего понимания данной статьи следует хорошо ознакомиться с типами дорог и их обозначениями в таблице на странице RU:Key:highway.
Требования
- Если обозначающие дороги линии highway=* пересекаются на местности (расположены в одном уровне), у них должна иметься общая точка.
- Если обозначающие дороги линии highway=* не пересекаются на местности (расположены в разных уровнях), общей точки у них быть не должно, а на линиях должны быть установлены теги layer=* (тег layer=0 может быть опущен). При этом на всех расположенных на разных уровнях дорогах, кроме одной, должны быть установлены теги bridge=yes или tunnel=yes. Возможна ситуация, когда теги bridge=yes или tunnel=yes будут проставлены на всех перекрещивающихся дорогах.
- Транзитное движение автомобилей осуществляется по дорогам motorway, trunk, primary, secondary, tertiary, unclassified, residential, а также на паромах (route=ferry + ferry=trunk/primary/secondary/tertiary/unclassified). В каких-то случаях по дорогам highway=living_street и highway=pedestrian осуществляется проезд к дорогам highway=unclassified, highway=residential, highway=living_street и highway=pedestrian. При охвате любой области полигоном внутри него (линии, проходящие через границу полигона, не рассматриваются) должен находиться только один дорожный граф: множество линий, составленных из дорог вышеуказанных типов, соединённых между собой (из любой линии можно попасть в любую другую линию по дорогам вышеуказанных типов). Наличие нескольких дорожных графов означает, что они являются изолированными и маршрут не может быть построен из линии одного графа в линию другого графа.
- Если в какую-то точку можно проехать по дорогам вышеуказанных типов, должна существовать возможность выехать из неё по дорогам вышеуказанных типов. Должны быть учтены невозможность проезда по дорогам с односторонним движением в одном из направлений и совершения некоторых манёвров из-за наличия запрещающих знаков.
- Если из какой-то точки можно выехать по дорогам вышеуказанных типов, должна существовать возможность въехать из неё по дорогам вышеуказанных типов. Должны быть учтены невозможность проезда по дорогам с односторонним движением в одном из направлений и совершения некоторых манёвров из-за наличия запрещающих знаков.
- Дороги типов highway=motorway, highway=motorway_link, highway=trunk, highway=trunk_link, highway=primary и highway=primary_link должны удовлетворять трём вышеуказанным условиям связности графа. Исключения: точки примыкания односторонних highway=motorway_link, highway=trunk_link и highway=primary_link к дорогам highway=secondary, highway=tertiary, highway=unclassified, highway=residential и highway=living_street (например, в точку примыкания одностороннего highway=primary_link к highway=secondary можно въехать по дорогам типов highway=motorway, highway=motorway_link, highway=trunk, highway=trunk_link, highway=primary и highway=primary_link, но нельзя выехать. Однако нарушения связности с точки зрения здравого смысла в данном случае нет, т. к. highway=primary_link как раз и используется для обозначения съезда с highway=primary на highway=secondary).
- Дороги типов highway=motorway, highway=motorway_link, highway=trunk, highway=trunk_link, highway=primary, highway=primary_link, highway=secondary и highway=secondary_link должны удовлетворять трём вышеуказанным условиям связности графа. Исключения: точки примыкания односторонних highway=motorway_link, highway=trunk_link, highway=primary_link и highway=secondary_link к дорогам highway=tertiary, highway=unclassified, highway=residential и highway=living_street.
- Дороги типов highway=motorway, highway=motorway_link, highway=trunk, highway=trunk_link, highway=primary, highway=primary_link, highway=secondary, highway=secondary_link, highway=tertiary и highway=tertiary_link должны удовлетворять трём вышеуказанным условиям связности графа. Исключения: точки примыкания односторонних highway=motorway_link, highway=trunk_link, highway=primary_link, highway=secondary_link и highway=tertiary_link к дорогам highway=unclassified, highway=residential и highway=living_street.
Распространённые ошибки
- Отсутствие общих точек на одноуровневых пересечениях дорог.
- Обозначение дорог с плохим покрытием тегом highway=track вместо тега highway=unclassified. Единственный проезд к поселению должен быть обозначен как транзитная дорога, даже если большую часть года дорога не пригодна для нормального использования легковыми автомобилями. Характеристики дороги должны задаваться тегами surface=*, smoothness=*, width=*, lanes=* и maxspeed:practical=*.
- Обозначение проездов к дорогам highway=residential и highway=living_street тегами highway=service вместо тега highway=unclassified. К именованной улице должен иметься транзитный проезд.
- Отсутствие на регулярных паромных переправах, являющихся частью сети дорог общего пользования, тега ferry=*.
- Отсутствие транзитных дорог, подходящих непосредственно к паромным переправам.