Здравствуйте.
Имеется полигональный слой. Необходимо выбрать полигоны, которые состоят из двух и более внешних контуров и при этом не имеют ДЫР.
Предполагалось:
1. выбрать все составные полигоны
2. удалить все полигоны с дырками
С помощью каких функций можно это сделать?
не нашла функции ObjectInfo
NumInteriorRing(obj)>1 не выбирает объекты
Поясните, пожалуйста.
Спасибо.
Выбрать полигоны состоящие из двух и более внешних контуров без дырок
Re: Выбрать полигоны состоящие из двух и более внешних контуров без дырок
Для выбора полигонов, состоящих из двух и более внешних контуров (мультиполигонов) и не имеющих внутренних колец («дыр»), рекомендуем использовать следующее условие в запросе:
Code: Select all
ObjInfoType(obj) = 7
and ObjInfoNContours(obj) > 1
and ObjInfoNItems(obj) = ObjInfoNContours(obj)
ObjInfoType(obj) = 7 - отбор объектов типа «полигон или коллекция полигонов».
ObjInfoNContours(obj) > 1 - выбор объектов, содержащих более одного контура (внешних и/или внутренних).
ObjInfoNItems(obj) = ObjInfoNContours(obj) - гарантирует отсутствие внутренних колец: количество элементов коллекции (внешних контуров) совпадает с общим числом контуров.
Пример полного запроса:
Функция ObjectInfo в ГИС Аксиома отсутствует. Корректные функции для анализа геометрии начинаются с префикса ObjInfo… (например, ObjInfoType, ObjInfoNContours, ObjInfoNItems).не нашла функции ObjectInfo
Функция NumInteriorRing(obj) предназначена для работы с геометрией в формате SpatiaLite. Для её применения к объектам Аксиомы требуется предварительное преобразование геометрии:NumInteriorRing(obj)>1 не выбирает объекты
Code: Select all
NumInteriorRing(FromAxiGeo(obj)) > 0
