Список форумов www.integro.ru www.integro.ru
ЦСИ ИНТЕГРО
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Ошибка пространственного запроса

 
Начать новую тему   Ответить на тему    Список форумов 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
Повторить пока не пробовал, просто предупреждаю - будьте бдительны. Как вариант предлагаю до выполнения этой операции добавить в семантику поля и через массовые операции заполнить их значением площадь и периметр. После исправления ошибок ещё раз проставить в аналогичные поля значение площади и периметра и сравнить прежние и новые значения. Если они одинаковые - значит мои опасения обошли Вас стороной.

_________________
г. Тольятти, г. Самара, ОАО "КУЗНЕЦОВ"
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
rvm



Зарегистрирован: 03.07.2008
Сообщения: 9

СообщениеДобавлено: Чт 23 Окт 2008 11:19    Заголовок сообщения: Re: Ошибка пространственного запроса Ответить с цитатой

Спасибо Сергей, все так и было. Этот слой (контуры зданий города) был импортирован из системы, работающей в MapInfo. Видать на каком-то этапе и произошло дублирование точек (или они там такие и есть).
А ошибку в Delphi во время исполнения отловить можно обычной конструкцией try ... except ... end; Написал на форум вопрос, а сам тут же нашел решение. Бывает.

С уважением, Владимир.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков Часовой пояс: GMT + 5
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете добавлять приложения в этом форуме
Вы можете скачивать файлы в этом форуме


© phpBB Group
Русская поддержка phpBB