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

Получить используемые значения семантики

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: 1
RSS
Получить используемые значения семантики
 
Подскажите, как для всех объектов карты получить список значений определенной семантики? Не весь список возможных значений, а именно использованных.
Например, для семантики 55 "Материал покрытия" получить список "Асфальт, Щебень" или коды классификатора семантики "1, 9".
Выделить объекты с непустой семантикой, перебрать их поиском и запоминать значения, фильтруя уже сохраненные? Или есть другой способ?
 
Цитата
Дмитрий Паньков написал:
Подскажите, как для всех объектов карты получить список значений определенной семантики? Не весь список возможных значений, а именно использованных.
Например, для семантики 55 "Материал покрытия" получить список "Асфальт, Щебень" или коды классификатора семантики "1, 9".
Выделить объекты с непустой семантикой, перебрать их поиском и запоминать значения, фильтруя уже сохраненные? Или есть другой способ?
Добрый день! В диалоге "Поиск и выделение", на закладке "Семантика" добавить необходимую семантику, указать нужное значений и выделить эти объекты. Запустить режим "Редактирование семантики списка объектов". В диалоге будет отображаться полный список используемых семантик.
 
Цитата
Дмитрий Паньков написал:
Выделить объекты с непустой семантикой, перебрать их поиском и запоминать значения, фильтруя уже сохраненные? Или есть другой способ?

Насколько я понял, Вы хотите это сделать не в штатных диалогах интерактивно, а программно.
Если программно, то просьба всегда уточнять, каким инструментарием, на каком языке и в какой среде разработки Вы программируете.

Цитата
Дмитрий Паньков написал:
Выделить объекты с непустой семантикой, перебрать их поиском и запоминать значения, фильтруя уже сохраненные? Или есть другой способ?

В целом примерно так и будет выглядеть алгоритм.
Выделять объекты не требуется, достаточно создать и заполнить контекст поиска по условию непустой семантики кодом 55.
Затем, перебирая объекты, отвечающие данным условиям, запрашивать у них конкретное значение семантики и заносить в некий свой список без повторов.

Можно еще проще - без контекста поиска, - просто перебрать все объекты карты от первого до последнего и запросить значение нужной семантики при ее наличии.
Если условие у Вас только одно (чтобы была определенная семантика) то полный перебор всех объектов будет по скорости примерно сопоставим с перебором результатов поиска.
Но как только условий станет больше (например, перебрать только линейные объекты или объекты определенных классификационных кодов, имеющие 55-ю семантику), то гораздо оптимальнее будет использовать контекст поиска (HSELECT - в MAPAPI, или компонент TMapFind - в GIS ToolKit), заполнив его всеми необходимыми условиями.
 
Цитата
Денис Вицко написал:
Насколько я понял, Вы хотите это сделать не в штатных диалогах интерактивно, а программно.
Именно так. На чистом MAPAPI и С++.

Благодарю за пояснения, вариант с полным перебором получился вполне удовлетворительным.
Страницы: 1
Читают тему (гостей: 1)



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

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