Есть ли возможность по RouteParam или иначе сориентироваться, какой тип highway был в исходном osm, включая _link/ не _link?
Что означает “сохраниться рутинг”?
Можно ли объединять сегменты дорог разного класса/скорости в один (если это получается по геометрии, например одиночная цепочка дорог между узлами роутингового графа) и можно ли объединять разные направления в один сегмент, если они вдруг оказались разного класса/скорости?
Если да, то что делать с классом и скоростью - максимизировать/минимизировать/усреднять/по матрице слияния и т.п?
Если нет, нужно ли сохранять градации по прочим параметрам из RouteParam (toll,denied_*)?
[UPD] Нужно ли сохранять однонаправленность некоторых дорог, если вдруг что-то оказалось однонаправленным? (на крупном масштабе такого вроде как нет, а вот улицы в городе вполне бывают)
И совет (это уже ко всем)
Как вы думаете, является ли “клубок” *_link-ов хорошим индикатором сложной развязки? Можно ли считать, что все *_link-и нужно стянуть в точки или в каких-то случаях может быть длинный *_link который нельзя стягивать?
Что-то мне кажется, что стягивать нужно не в точку, а в отрезок. А с отрезком поступать уже в соответствии с выбранным масштабом, - возможно, стягивать в точку.
То и значит. Карта должна быть пригодной для рутинга. Например, можно строить маршруты между городами.
Да, можно объединять. Что делать со скоростью - усреднять, устанавливая разумное значение скорости для данного класса дороги.
Можно не париться, для начала. Тем не менее, меня интересует автомобильная карта.
Да, улицы в городе желательно оставлять однонаправленными, если они уцелели после генерализации.
Линк - это однозначно развязка, которую нужно стягивать. Конечно, в исходных данных может быть ошибочно присвоенный *_link, но я думаю это на задачу не влияет.
Постараюсь ответить, как смогу. Если бы я мог строго формализовать эту задачу, наверно она была бы уже решена
Ну я не придираюсь, мне уже надо что-то в алгоритм закладывать
(это стандартная выдача osm2mp.pl)
На это я и рассчитывал. Just as planned
Линк - это однозначно развязка, которую нужно стягивать. Конечно, в исходных данных может быть ошибочно присвоенный *_link, но я думаю это на задачу не влияет.
Лады, буду стягивать. В крайнем случае добавим проверку длины _link.
Это хорошее замечание. Конечно, я намешал условий из нескольких задач.
Если брать строго формальное преобразование двухвеек в одновейки, то могут возникнуть запреты. Если посмотреть на цель- построение обзорной карты России (см. задачу 5), то в ней никаких запретов быть не может. Если вдруг возникли запреты, это значит что уровень генерализации выбран неверно.
Мне кажется, первое, что надо сделать, это удостовериться, что те дороги, которые связаны link’ом, - пересекаются. Желательно поблизости (уже на этом этапе можно сравнивать расстояние от link’а до точки пересечения и с длиной самого линка).
А дальше - определение точки пересечения, включение ее в граф (вместе со всеми необходимыми преобразованиями путей - ребер дорожного графа) и удаление линков.
Извините, если эта мысль уже звучала, но удаление всех _link, стягивание двухвеек в одновейки и принудительное пересечение разных уровней не решают обсуждаемую проблему?
Не совсем так. Принудительные пересечения нужно делать там где есть развязки. Там где дороги пересекаются в разных уровнях, но нет развязки, принудительное пересечение делать НЕ нужно.