На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Второй объект касается первого

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: 1
RSS
Второй объект касается первого, Второй объект касается первого
 
Здравствуйте!

Form1.MapFind2.Active := false;
Form1.MapFind2.FindPoint := false;
Form1.MapFind2.MapSelect.Clear;
Form1.MapFind2.MapObj.Style := OS_SELECT;
Form1.MapFind2.MapObj.PlaceOut := PP_PLANE;
Form1.MapFind2.MapSelect.AddSemantic(10,'505A25BE-1EBF-4D0A-9533-A',SC_EQUAL);
Form1.MapFind2.Active := true;
Form1.MapFind2.First;

Form1.MapFind1.Active := false;
Form1.MapFind1.FindPoint := false;
Form1.MapFind1.MapSelect.Clear;
Form1.MapFind1.MapObj.Style := OS_SELECT;
Form1.MapFind1.MapObj.PlaceOut := PP_PLANE;
Form1.MapFind1.MapSelect.AddSemantic(10,'AFABC6A0-24F1-4E9D-B40C-4',SC_EQUAL);
Form1.MapFind1.Active := true;
Form1.MapFind1.First;

While not Form1.MapFind1.Eof do
begin
 If (Form1.MapCheckInside1.CheckSubjects = CHI_SECONDIN) or
 (Form1.MapCheckInside1.CheckSubjects = CHI_TOUCHIN) then
 begin
 Form1.MapFind1.Center;
 ShowMessage ('найден');
 end;
Form1.MapFind1.Next;
end;

Координаты соприкасающихся точек:
Первого объекта

Точка №6

460654.640

2174542.290

Точка №7

460645.300

2174533.250

Второго объекта

Точка №4

460654.640

2174542.290

Точка №5

460645.300

2174533.250

Других точек нет на линии соприкосновения двух объектов.

Если второй объект внутри первого,

то все хорошо ищет,
Если соприкасается, то не ищет.

Что-то не правильно?

screenshort1.PNG (76.37 КБ)
 
Код возврата CHI_TOUCHIN - используется для функции FullCheckObjects. Вам надо изменить функцию.
 
Да, так я и думал, что такой будет ответ.
Это похоже понятно.
Но, а как быть, если все-таки в этих объектах, которые соприкасаются, есть подобъекты?
Кто запретит пользователю создать подобъекты?
 
Тогда код возврата от CheckSubjects на анализировать на пересечение (касание контуров - это уже пересечение)
 
Уважаемый Андрей Владиславович!

Здесь похоже нужна точно доработка GTK.
Большая просьба, если я прав,
доработать GTK, чтобы этот вопрос учитывать,
т.к. согласитесь, что в природе такой случай существует.
Или я не прав?
 
Мне не понятно что вы имеете ввиду? Какая нужна доработка?
 
Есть первый объект, пусть он будет с подобъектами.
Есть второй объект, и он тоже с подобъектами.
Второй объект так расположен, что касается внутри внешней стороной с первым объектом. См. картинку выше.
На каринке объекты сейчас без подобъектов, их придется просто представить, что они есть.
Теперь нужно продитектировать,
что действительно второй объект расположен внутри первого и касается его.
Т.е. другими словами также как работает функция  FullCheckObjects.
Но этой функцией я пользоваться не хочу, т.к. возможно в объектах могут быть подобъекты.  
 
Для своей задачи вы можете воспользоваться  FullCheckObjects. Она работает с внешним контуром объекта без учета подъобъектов (как написано в документации).
 
А не чего что в обоих объектах есть подобъекты?
 
Будут анализироваться только внешние контура объектов.
Страницы: 1
Читают тему (гостей: 1)



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности