Дороги объединяются, если: а) конец одной дороги является началом другой, б) у них одинаковое имя, тип и параметры роутинга
Видимо, придётся ещё добавить условие, чтобы угол между ними тупой был, а то сейчас dual carriageway в точке схождения объединяется
Нельзя сделать так, чтобы всё автоматом
В таком случае, имея полностью соединенную линию, вручную делаем из нее так, чтобы было красиво.
Однозначно, так лучше, чем так как есть, а другого решения нет.
В принципе, имея линию, ее уже можно сделать полигоном, и если некрасиво получится - подправить руками.
дык можно и автоматом сделать, чтобы по береговой линии полигоны морей формировались…
но это можно сделать только вместе с обработкой границ карты
а я всё-таки хочу сначала эти [censored] запреты поворотов сделать, чтобы уж хотя бы роутинг полноценный был
и всё-таки не нравится мне этот вариант…
слишком он “уязвимый” для случайного редактирования
имхо, правильнее было бы просто указывать для дорог направление движения, к которому относится запрет. что-то типа dir_from=1 (направление движения совпадает с порядком нод), dir_to=-1
собственно, склейка настраивается всего одним параметром: $mergecos
дороги соединяются, если косинус угла поворота > $mergecos
то есть если $mergecos==-1, то клеятся все дороги, 0 - только те, у которых на стыке поворот <90 градусов, итд
надеюсь, понятно объяснил
а про запреты я уже писал. пока не работают для дорог, которые надо разрезать
Я тут совсем запарился на работе перед отпуском
Надо бы сгенерировать “обратный” индекс: для
каждого роутингового нода - лист из ways, которым он принадлежит.
Кстати, если NodeID и RoadID брать прямо из ОСМ, роутинговый cgpsmapper ругается ?
фик знает, я не пробовал. зависит от внутренних структур маппера.
обновилась карта всей России: http://garminmapsearch.com/osm/mp/2008-07-18_175749_russia.rar
в логе обнаружено ровно 15 запретов поворотов
из них 14 - мои, и один неправильный (в Тюмени)
напоминаю, что если дорога не односторонняя, то в точке запрета её нужно разрезать,
иначе невозможно определить направление движения
а вот этого как раз делать было не надо
надо было в ту же папку бросить cgpsmapper.exe, чтобы install.bat скомпилировал обзорку
а так у тебя вместо обзорки используется основная карта, а основной как бы и нет