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