Напомню, что в Украине, согласно официальным данным, есть 6 классов дорог: (http://wiki.openstreetmap.org/wiki/%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%BE%D0%B1%D1%96%D0%BB%D1%8C%D0%BD%D1%96_%D1%88%D0%BB%D1%8F%D1%85%D0%B8_%D0%A3%D0%BA%D1%80%D0%B0%D1%97%D0%BD%D0%B8)
М-** - Міжнародні автомобільні дороги
Н-** - Національні автомобільні дороги
Р-** - Регіональні автомобільні дороги
Т-- - Дороги місцевого значення
О****** - Регіональні автомобільні дороги України загального користування
С****** - Сільські автомобільні дороги України загального користування
Причем, данные по посленему (6-му) классу для большинства регионов в принципе отсутствуют. Для пятого - присутствуют в очень ограниченном количестве.
Если мы попытаемся посмотреть какую-нибудь карту автомобильных дорог, будь то бумажная (пересмотрел с полдюжины) либо Интернет-карта (например, http://www.doroga.ua/Pages/Map.aspx)), нигде дороги классом ниже Т-- не подписаны.
Другими словами, на практике, все, что ниже Т-- - unclassified.
Соответственно, Т-- - наинизший уровень "классифицируемых дорог, т.е. tertiary.
Отсюда вполне логично выходит:
Р-** - secondary
Н-** - primary
М-** - trunk
Но это, разумеется, при условии, что те принципы, исходя из которых мы проводим классификацию, совпадают с теми, из которых исходили авторы официальной классификации.
А это далеко не так.
В принципе, на официальном уровне также прешаются вопросы связности дорожнго графа, его иерархичности и генерализуемости.
Но в частностях существуют серьезные расхождения.
Например, для важнейших магистралей создаются дублеры (нередко не единственные) т.е. параллельные равнозначные дороги для сниения нагрузки на основные магистрали, а для генерализации важнейшим правилом является единственность, т.е. если две примерно равнозначные дороги соединяют два объекта, то:
- Наивысший статус определяется из наименьшего из двух соединяемых объектов.
- Указанный статус присваивается единственному из двух или более объектов.
Поэтому если указаным выше требованиям для одной и той же пары объектов удовлетворяют две и более дороги, то вычисленный стстус присваивается только одной из них, а остальным - статус пониже.
Другими словами, в указанной выше схеме нужно сделать оговорку “не выше” вместо имеющейся сейчас “не ниже” (щонайменше).
Увы, wiki пишут не программисты и не для программистов, т.е. не те, кто обрабатывают данные, и не тем, кто в такой обработке разбирается. Поэтому кое на какие вещи акцент не делается, а кое-какие вообще изложены слишком расплывчато, чтобы допускать единообразное исполнение.
Вот пример, с которым я недавно столкнулся (правда, на территории России):
http://www.openstreetmap.org/?lat=56.33062&lon=38.14193&zoom=15&layers=M
некто предложиил повысить улицу “Пограничная” до secondary на основании того, что она, якобы, соединяет две primary. Я в ответ предложил объявить secondary цепочку Дружбы-тропинка-Чайковского до того же уровня и на том же основании.
Идея интересная, но, увы - алгоритмически не реализуемая.
Можно, конечно, тупо проставлять статус по таблице соответствия официальных статусов OSM-овским, но:
- Вызывает сомнение сама возможность построения адекватной таблицы.
- Это не решит проблемы генерализации т.к. никак не поможет выбрать в качестве дороги с более высоким статусом одну из дву-трех примерно равнозначных (построенных для дублирования основной магистрали). И именно здесь правильно расставленные человеком (!) статусы могут очень сильно облегчить задачу генерализатору (правильнее будет сказать не “облегчить” а решить за него). Для чего, собственно, эти статусы и были придуманы.