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

GisToolFree15 Компоненты

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

Подскажите, пожалуйста, существует ли свежая документация по компонентам GTK ?

Например: как работает компонент TMapFindAdj ?
 
Добрый день!

Самая свежая документация всегда на сайте в соответствующем разделе.

При этом, как выяснилось, раздел с описанием TMapFindAdj в текущей версии документации отсутствует.
Спасибо, что обратили на это внимание!

Документацию GIS ToolKit исправим.

Пока Вы можете посмотреть описание этого компонента в Руководстве пользователя к GIS ToolKit Active.
 
Цитата
Александр написал:
Подскажите, пожалуйста, существует ли свежая документация по компонентам GTK ?

Руководство пользователя GIS ToolKit обновлено на сайте.
Описание компонента TMapFindAdj приведено в разделе 3.4.2.23.
 
Здравствуйте.

Имею компонент MapFindAdj если в MapSelect запишу условия отбора, есть уверенность, что в качестве смежных объектов будут выбираться только те объекты, что указаны условиях MapSelect  ?

Ограничение объектов в качестве поиска смежных:

MapFindAdj1.MapSelect.ClearAll;
MapFindAdj1.MapSelect.Excode[-1, 0]:= true;
MapFindAdj1.MapSelect.AllMaps:=true;
MapFindAdj1.MapSelect.Excode[45140000, OL_SQUARE]:= true;
MapFindAdj1.MapSelect.Excode[45111000, OL_SQUARE]:= true;
MapFindAdj1.MapSelect.Excode[45100000, OL_SQUARE]:= true;
MapFindAdj1.MapSelect.Excode[45210000, OL_LINE]:= true;
 
Добрый день!

Цитата
Александр написал:
есть уверенность, что в качестве смежных объектов будут выбираться только те объекты, что указаны условиях MapSelect  ?

Да.
Именно для задания условий, ограничивающих выборку, и предназначено данное свойство:
Цитата
TMapFindAdj.MapSelect  
property MapSelect: TMapSelect;
Контекст условий поиска.
Контекст условий поиска, по условиям которого производится топологический поиск объектов.

Только обратите внимание, что установка значений таких свойств как MapSelect.Excode выполняется для текущей карты в MapSelect, указанной в свойстве SiteNumber.
Если Вы хотите задать такие условия для всех карт, необходимо это повторить для каждой.

И есть еще один нюанс: установить дополнительно ограничение по области в MapSelect при поиске в TMapFindAdj не получится.
 
Имею 1 карту. И при установках написанных выше, в качестве смежных объектов вылезли объекты с кодом отличным, чем задано условием.
Я предполагаю, что в качестве смежных должны быть только
MapFindAdj1.MapSelect.Excode[45140000, OL_SQUARE]:= true;
MapFindAdj1.MapSelect.Excode[45111000, OL_SQUARE]:= true;
MapFindAdj1.MapSelect.Excode[45100000, OL_SQUARE]:= true;
MapFindAdj1.MapSelect.Excode[45210000, OL_LINE]:= true;


Куда смотреть, что я не учёл ?
 
Есть 2 метода поиска соседей по общим участкам границ:
Код
 // Поиск объекта, имеющего смежный участок (общий участок контура) с заданным объектом
 // Поиск ведется в карте, где находится выбранный объект
 // hMap     - идентификатор открытой карты,
 // info     - идентификатор существующего объекта, для которого надо найти смежные участки
 // target   - указатель на существующий объект TObjectInfo, в котором будет размещен результат поиска
 // При поиске с флажками WO_NEXT, WO_BACK параметр target должен указывать на результат предыдущего поиска
 // section - описание найденного участка (см. MAPTYPE.H)
 // hselect  - условия поиска объекта
 // delta    - допуск (расхождение точек участков) в метрах (0.1 / 0.01 и т.п.)
 // flag     - порядок поиска объектов (WO_FIRST, WO_NEXT...)
 // Если объект не найден - возвращает ноль, иначе - возвращает номер участка и заполненную структуру MAPADJACENTSECTION
 // subject - 0 - искать соседей только с внешним контуром,
 //           1- с учетом подобъектов, нумерация точек объекта и подобъектов - сквозная
 // Если объект не найден - возвращает ноль

_MAPIMP long int _MAPAPI mapSeekAdjacentObject(HMAP hMap, HOBJ info, HOBJ target, MAPADJACENTSECTION *section,
                                               HSELECT hselect, double delta = 0.0, long int flag = WO_FIRST | WO_INMAP,
                                               long int subject = 0);

 // Поиск объектов, имеющих смежный участок (общий участок контура) с заданным объектом
 // Поиск ведется в карте, где находится выбранный объект
 // hMap  - идентификатор открытой карты,
 // info  - идентификатор существующего объекта, для которого надо найти смежные участки
 // MAPADJACENTLISTEX - память для записи смежных участков соседей
 // count - максимальное количество смежных участков
 // hselect - условия поиска объектов для списка
 // delta - допуск (расхождение точек участков) в метрах (0, 0.1 / 0.01 и т.п.)
 // point - обработка сторон, образуемых повторяющимися точками: 0 - заносить в список, 1 - нет
 // subject - 0 - искать соседей только с внешним контуром, 1 - с учетом подобъектов, нумерация точек объекта и подобъектов - сквозная
 // Если соседи не найдены - возвращает ноль, иначе - количество соседей

_MAPIMP long int _MAPAPI mapSeekAdjacentListEx(HMAP hMap, HOBJ info, MAPADJACENTLISTEX *list, long int count,
                                               HSELECT hselect, double delta = 0.0, long int point = 0, long int subject = 0);

Оба метода имеют параметр HSELECT.

Если при вызове метода передать идентификатор MapFindAdj1.MapSelect в параметр hselect, то будут проверяться только заданные объекты.
Страницы: 1
Читают тему (гостей: 1)



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

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