Переписал скрипт заново, почти с нуля: то, что было раньше, уже невозможно было развивать.
По функционалу пока такой же, что и был.
Сейчас пытаюсь сделать соединение порезанных кусков дороги в одну.
Отсюда вопрос: по каким правилам эти самые куски соединять? Идеи будут?
не совсем так, имхо
совпадение нужно только по “значимым” для результата тегам
например, дорога по мосту в гармине не выделяется, а в осм она при этом разбивается на три участка
вот их бы тоже надо объединять
для москвы:
...
Loading roads... 9747 loaded
Joining roads... 1770 joined
Согласен. Тогда надо только добавить функцию трансформирующую тэги из “оригинального ОСМ” набора
в набор “результата”, который может быть и “оригинальным ОСМ”. И потом смотреть совпадение тэгов “результата” (hash/category).
Ну можно концевые узлы каждого из вхождений с нужным тегом проверять на равенство концевым узлам уже просмотренных нужных, хранящимся во временном буфере (?). При совпадении - дописываем к найденной.
Как-то так… А может и низя… Я особо-то не силен…
да нет, соединить-то линии в одну не проблема
а вот как из линии полигон сделать?
скорее всего, вопрос можно будет решить только вместе с обрезкой карты по границе
Я делаю либо вручную мапедитом, а вообще имею запасной вариант в виде конфига для мп2мп, который использую в первую очередь для нормального прописывания адресов и возможности присваивания типа объекту исходя из наличия нескольких атрибутов (например, разделения объектов религии на мусульманские и православные ).
Так вот там сделать из полилинии полигон - одна строчка.
alexfrol,
когда имеется замкнутая полилиния - берег озера - нивапрос, действительно одна строчка
когда это берег острова - уже сложнее, но тоже можно.
а что делать, когда это просто линия, утыкающаяся в края карты?
Дороги объединяются, если: а) конец одной дороги является началом другой, б) у них одинаковое имя, тип и параметры роутинга
Видимо, придётся ещё добавить условие, чтобы угол между ними тупой был, а то сейчас dual carriageway в точке схождения объединяется
Нельзя сделать так, чтобы всё автоматом
В таком случае, имея полностью соединенную линию, вручную делаем из нее так, чтобы было красиво.
Однозначно, так лучше, чем так как есть, а другого решения нет.
В принципе, имея линию, ее уже можно сделать полигоном, и если некрасиво получится - подправить руками.
дык можно и автоматом сделать, чтобы по береговой линии полигоны морей формировались…
но это можно сделать только вместе с обработкой границ карты
а я всё-таки хочу сначала эти [censored] запреты поворотов сделать, чтобы уж хотя бы роутинг полноценный был