Временные изменения маршрутов НОТ

У нас часто ремонтируют трамвайные линии с закрытием движения на пару недель и назначением заменяющих автобусов. Думаю над схемой хранения такой информации в базе.
Пример изменения: http://www.mosgortrans.ru/routes/detail/full/v-svjazi-s-remontom-tramvainykh-putei-na-dubininskoi-uli/

Пожелания:

  • Участники оригинального маршрута не должны изменяться.
  • Существующие рендеры не должны портится, и показывать одновременно основной и временный маршрут.

Нынешняя схема:
route=tram/trolleybus/bus

Вариант 1:
Скопировать основной маршрут в новое отношение, у нового отношения назначить временную трассу, тег type=route_temporary.
Создать новое отношение
type=route_replacement
date_start=2013-10-12
date_end=2013-11-10
В качестве членов - отношениe type=route с ролью route_original, и type=route_temporary c ролью route_temporary

Вариант 2:
Скопировать основной маршрут в новое отношение, у нового отношения назначить временную трассу, тег type=route
У старого маршрута изменить тип на type=route_disabled.

Я склоняюсь к первому варианту, потому что второй - не очень соответствует практике тегирования.
У кого есть мысли?

Я бы предложил использовать схему : =
В нашем случае disabled:type=route+route=tram/trolleybus/bus
или type=route+disabled:route=tram/trolleybus/bus

type=route, end_date=2013-10-12, start_date=2013-11-10, note=“…” на оригинальном маршруте.
type=route, start_date=2013-10-12, end_date=2013-11-10, note=“…” на замене.

(я не в курсе влияния end_date/start_date/state/disused/alternate на софт, но route_replacement/route_disabled выглядят странно)


вообще-то, osm не очень подходит для кратковременных изменений в навигации :\

то есть, если это закрытие маршрута на больше полмесяца и об этом известно за столько же, может и подходит.

но если меньше — данные из базы просто не успеют дойти до многих юзеров.

имхо, этим должен заниматься отдельный около-осм сервис. (возможно, тот-же призрачный сервис, что занимается пробками и прочими ремонтами на дорогах = )

+1
Я бы даже сказал, это скорее про расписание, которое в нашем public transport полностью вынесено за скобки.

Интересно, сколько итераций понадобится чтобы повторить структуру GTFS? :slight_smile:
Может всё-таки сразу её использовать?

Не вполне понятно это пожелание. Если участников вывести из маршрута, они изменятся или нет? М.б. состав участников оригинального маршрута не должен меняться?

Рендеры, понятное дело, не должны испортиться от изменения исходных данных. М.б. результат рендеринга одновременно должен показывать основной и временный маршрут? Тогда это пожелание внутренне противоречиво, ведь актуальный маршрут не может быть одновременно основным и временным, старым и новым, а цель ОСМ - отражать актуальное состояние сущностей, но не прошлое.

Я бы добавил в этот список и route=road, т.к. проблема общая. В этом случае изменения могут длиться месяцами.

Оба предложенных варианта мне не нравятся тем, что порождаются новые сущности для одного и того же объекта реального мира. Маршрут, будь он оригинальный или временно изменённый, всегда один в один момент времени. Соотв. и отношение д.б. одно.

М.б. попробовать так:

  1. Временно выведенным из маршрута сегментам задать роль disused.
  2. Временно введённым в маршрут сегментам задать роль temporary.

Ну и ещё про route=road. Предположим, что некоторые сегменты номерной автодороги закрываются для движения. Официальный (обозначенный соотв. дорожными знаками) объезд осуществляется по неномерным автодорогам. Правомерно ли в таком случае добавлять эти объездные пути в имеющийся маршрут?

Не, пожалуй не буду вводить. У всех мысли о схеме не совпадающие с моими, да и к понедельнику обещали у нас ремонты трамвайных линий закончить.