Эмн. Хм. Ну… как бы… эта.
Вот это highway = secondary + area = yes в mp файле есть изолированный, ни к чему не подключенный цикл дорог. SaveChain зациклился.
Сейчас запатчу.
Ага, я его уже нашел, и даже поменял теги. Но это жизнь, данные берутся из осм, а не из мира чистого разума. Зацикливание - самое плохое, что может случиться, потому что процесс останавливается.
Почти готово, идёт последние зарубы топора На мелких файлах из примера даёт идентичный результат. А вот на http://peirce.gis-lab.ru/misc/PL-OVRV.roads.zip есть оличия
Нашёл одно из проблемных мест, визуально багованная версия выглядит генерализированней
Как я уже писал, результат некоторых функций зависит даже от порядка расположения точек и отрезков в массивах.
Надо смотреть на какой стадии возникает разница.
Да как ты и говорил, всё дело оказалось в функции delNode.delEdge(). В твоём коде на место дырки вставляется последний элемент, у меня же списки удаляют элемент сдвигая все остальные. Насколько такое нарушение критично ?
Не секрет, что загрузить карту осм в навигатор не так просто. Злые языки говорят, что это доступно только программистам.
Соответственно задача звучит так: сделать приложение-загрузчик Osm-карт для Ситигида/Навитела/Cеми Дорог для Андроида и Айфона, которым сможет пользоваться даже блондинка.
Работать он должен так.
Самостоятельно определять папку, в которую нужно складывать карты.
Получать с веб свежий список карт в xml
Показывать доступные для загрузки карты, с указанием статуса - карта не загружена, загружена последняя, доступно обновление.
Если пользователь ткнул в карту - начинать загрузку, и показывать прогресс загрузки в процентах.
т.е. это должно быть не что иное, как специализированный диспетчер загрузок.
Как я понимаю, версия для PC тоже нужна, чтоб можно было просто подключить навигатор-устройство и залить свежую карту тем же способом.
Кстати, Garmin тоже не помешал бы. Есть сборки, не требующие mapsource (хоть и с минусами вроде отсутствующего адресного поиска), и многие Garmin-устройства+программы для андроида, винмобайла и т.д. нормально такие сборки обрабатывают.
VB-шной версии не хватает массива edge(20) для точек на стадии схлопывания развязок.
25 тоже не хватает.
Сколько нужно - определить не могу, там исходно больше 2М точек, в процессе образуется за 2.5М, при edge(30) в отладке выпадает Out of memory. Почему-то не смогает за ~500М памяти выйти.
ИМХО, надо рубить Испанию на зоны. mp-шник больше чем для России.