|
www.integro.ru ЦСИ ИНТЕГРО
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
rvm
Зарегистрирован: 03.07.2008 Сообщения: 9
|
Добавлено: Ср 22 Окт 2008 17:48 Заголовок сообщения: Ошибка пространственного запроса |
|
|
При выполнении команды
aSetQuery:=MapObjects.QueryByContour(sCodLayers,aContour,incrTouched+incrIntersected,incrIntersected);
происходит ошибка и ИнГео выдает сообщение "Вырожденный отрезок". Это происходит только при работе с одним слоем и в одном (пока что найденном) месте. Визуально на карте в этом месте все объекты "нормальные" и выделяются инструментами ИнГео, отображаются их координаты. Что обозначает это сообщение и как подобные ошибки пространственного запроса отловить программно?
С уважением, Владимир. |
|
Вернуться к началу |
|
|
Сергей Попов
Зарегистрирован: 05.03.2005 Сообщения: 299 Откуда: г. Тольятти - Самара - Копейск
|
Добавлено: Чт 23 Окт 2008 08:02 Заголовок сообщения: Re: Ошибка пространственного запроса |
|
|
Предположение:
у Вас есть одинаковые точки - это две последовательные точки в рамках одного контура с абсолютно одинаковыми координатами. Естейственно, что длина отрезка между ними =0, а сам отрезок - вырожденный.
Найти и обезвредить одинаковые точки можно с помощью пункта меню Сервис->Проверка объекта
Ещё на эту тему:
Одинаковые точки необходимо уничтожать перед выполнением Пространственного запроса и Перемещения объекта/группы объектов.
Запрос невыполнится, а при перемещении, объекты сдвинутся, а вторые точки нет.
Проверка объекта умеет исправлять все ошибки ЭТОГО ВИДА, но:
1. за один раз она не удаляет все эти ошибки, а примерно половину. Потом ищем ещё одну аналогичную ошибку, запускаем исправление и вычищаем ещё половину от оставшейся половины. И так логарифм от количества ошибок по основанию 2 раз надо повторить эту операцию.
2. Пока только один раз мною замечено изменение контура при исправлении этой ошибки. Это произошло на днях в версии 4.4.0.148
Повторить пока не пробовал, просто предупреждаю - будьте бдительны. Как вариант предлагаю до выполнения этой операции добавить в семантику поля и через массовые операции заполнить их значением площадь и периметр. После исправления ошибок ещё раз проставить в аналогичные поля значение площади и периметра и сравнить прежние и новые значения. Если они одинаковые - значит мои опасения обошли Вас стороной. _________________ г. Тольятти, г. Самара, ОАО "КУЗНЕЦОВ" |
|
Вернуться к началу |
|
|
rvm
Зарегистрирован: 03.07.2008 Сообщения: 9
|
Добавлено: Чт 23 Окт 2008 11:19 Заголовок сообщения: Re: Ошибка пространственного запроса |
|
|
Спасибо Сергей, все так и было. Этот слой (контуры зданий города) был импортирован из системы, работающей в MapInfo. Видать на каком-то этапе и произошло дублирование точек (или они там такие и есть).
А ошибку в Delphi во время исполнения отловить можно обычной конструкцией try ... except ... end; Написал на форум вопрос, а сам тут же нашел решение. Бывает.
С уважением, Владимир. |
|
Вернуться к началу |
|
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете добавлять приложения в этом форуме Вы можете скачивать файлы в этом форуме
|
|