Показать сообщение отдельно
Старый 27.01.2009, 23:42   #56
APK-LVDZ
Разработчик
 
Аватар для APK-LVDZ
 
Регистрация: 11.05.2007
Адрес: Рига, Латвия
Сообщений: 1,328
Вы сказали Спасибо: 613
Поблагодарили 2,172 раз(а) в 631 сообщениях
APK-LVDZ стоит на развилке (репутация по умолчанию)
По умолчанию

Некоторые маршрутостроители сталкивались с ошибкой, которая выскакивает при пересоздании базы данных пути, которая гласит коротко и непонятно: "один вектор-один невектор: remove_end_end". После этого сообщения, и нажатия на ОК мы узнаём адрес Билла Гейтса.

Данная ошибка присутствует и в маршруте Зилупе. Сколько ни пытались - не могли найти причину. Однако что интересно - эта ошибка не мешает ездить поездам, и работать сценариям. Один минус от неё - невозможность пересоздания базы данных пути, если произойдёт какая-нибудь ошибка, например "соседние части пути не загружены".

Теперь самое интересное: как от неё избавиться?
Я предлагаю два варианта возможного решения, но последнее слово конечно остаётся за самим редактором, потому что ситуации с этой ошибкой всегда разные, и, возможно что-то не сработает.
Когда редактор "летает" по вашему маршруту, пересоздавая базу, в окне координат, да и наверху в главном окне постоянно отображаются координаты местонахождения. Во время появления ошибки про вектора следует записать координаты long и lat со всеми дробными числами, т.е. один к одному. Эти координаты показывают последнее место, где возникла ошибка. И возникает она где-то на стыке двух путей.
Вариант 1: самый работоспособный вариант, но не исключает ошибки в дальнейшем. Суть его вот в чём: по полученным координатам вы выписываете себе координаты тайла согласно сетке тайлов. Т.е. это значения Tile X и Tile Z. Затем вы ищете соответствующий этим данным файл в папке WORLD. Шаблон названий достаточно прост: например название у нас такое: "w-005025+015158.w", где первые цифры "-005025" - tile x, а "+015158" - tile z. Найдя этот файл, вы просто ВЫНОСИТЕ его из папки WORLD в любое другое место. Затем делаете пересоздание. База данных будет пересоздана без того тайла. Затем снова возвращаете файл на его родное место, и топаете на этот тайл. На нём вы увидите, что пути выложены как статические, т.е. над ними нету серой полоски, а пути как бы заканчиваются на стыках тайлов. Наша задача - просто щёлкнуть по каждому пути, а затем снять с него выделение - полоски станут появляться. Одно "но" - если у вас будет стрелка - её лучше переложить вообще, иначе в симуляторе перестанут передвигаться её остряки.
Вариант 2: менее надёжный, т.к. я его недавно обнаружил, и проверить как следует не успел, но именно он, возможно, убирает эту ошибку насовсем. Итак: по записанным координатам летите к путям. Я почти на 100% уверен, что конфликтующая секция пути находится рядом с границей тайла. Это легко проверить - визуально запомните местоположение вашей секции (потому что когда уложен путь вы не видите где какая секция начинается или заканчивается). Затем выберите режим работы с текстурами (на тайле появляется чёрная сетка с квадратами). Синяя линия - граница тайла. Если секция пути находится РЯДОМ с нею или ПЕРЕСЕКАЕТ её, то есть смысл по-играться с нею. Например, удалите, а потом снова поставьте новую, но такую же секцию пути. Можно и по-другому: возьмите эту секцию пути и просто поменяйте её местоположение. Например секция "пришла" к нам с соседнего тайла - сделайте наоборот - чтоб она туда уходила. Сторона секции, которая "уходит" от нас - та, что может повышаться или понижаться. Если край не понижается или не повышается - это и есть начало секции. В крайнем случае, попробуйте просто вместо мелких секций сделать какую-то одну наиболее длинную, или просто выполните путь другими кусками, чтобы не повторять той самой позиции, если не срабатывает. Версия этого варианта следующая: на программном уровне плохо обрабатываются переходы с тайла на тайл. Это было замечена по светофорам, маркерам переездов, и даже маркерам звуков. Чаще всего они просто исчезают, но бывает и наоборот (в маршруте Зилупе, например, после станции Виляны (примерно 199 - 201 км) летают два маркера звука. Удалить их у вас не получится - перезагрузитесь - и они появятся снова). Просто если местоположение объекта мешает правильно рассчитать базу данных - ничто не мешает вам изменить местоположение.

Почему я пишу об этом тут? Хочется, чтобы кто-то либо согласился, либо опроверг эти доводы, а также хотелось бы узнать - в каких случаях данная ошибка появлялась у других, и как они с нею боролись.
APK-LVDZ вне форума   Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо APK-LVDZ за это полезное сообщение:
Старый 01.01.2007, 12:00  
Яndex
Спонсор
 
 
Регистрация: 01.01.2007
Сообщения: 500


Реклама показывается изредка по случайному принципу
По умолчанию РЕКЛАМА