Функция Atlas, похоже, не работает с перевернутыми полигонами в сочетании с фильтром «внутри»

#qgis

Вопрос:

Мой проект заключается в создании набора карт для описания речного бассейна. Бассейн состоит из нескольких поддиапазонов, каждый из которых описан с помощью многоугольника в файле .shp. Я нахожусь в процессе создания карт подосновы, которые показывают относительно высокую детализацию, используя опцию макет/Атлас. Эти карты подосновы должны показывать только те геометрии, которые находятся внутри подосновы — я не хочу видеть никакой информации за пределами ее полигона. Большинство (точечных) слоев, которые я хочу показать, могут быть хорошо отфильтрованы до тех, которые находятся в подоснове, только с помощью within($geometry,@atlas_geometry) оператора в фильтре символов на основе правил. Эти слои состоят из точек или полигонов, которые полностью находятся в пределах бассейна. Пока все идет хорошо.

Этот подход не очень хорошо подходит для полигонального слоя, содержащего контуры высоты. По своей конструкции эти контуры пересекают (а не лежат внутри) многоугольники подосновы. Фильтрация с помощью within оператора не даст результатов, которые я ищу (это приведет к отображению только подмножества контуров). Аналогично, использование фильтра intersects приведет к визуализации полноконтурных полигонов, включая части, которые находятся за пределами поддиапазона.

Мой нынешний подход состоит в том, чтобы просто скрыть (а не не рисовать) любой объект за пределами визуализируемого многоугольника. Я пытаюсь сделать это, установив полигоны подосновы как «перевернутые полигоны», которые «просто заполнены» сплошным белым цветом. Я думал, что это должно просто скрыть контуры, которые находятся за пределами отображаемой области. Мои настройки, согласно приведенным ниже скриншотам, следующие:

  • Слой подосновы задается как слой покрытия atlas
  • Моя карта «контролируется» Atlas
  • Настройки символики подосновы-это «перевернутые полигоны», которые «основаны на правилах», где фильтр within($geometry,@atlas_geometry)
  • Фильтр «тест» подтверждает, что для отображаемой в данный момент поддиапазона предварительного просмотра atlas оператор принимает значение TRUE/1.

Я бы ожидал, что Макет будет отображать окружающие поддиапазоны оранжевым цветом. Увы, на макете никоим образом не отображается ни один из поддиапазонов (последний снимок экрана ниже).

Мои вопросы таковы:

  1. Может ли мой подход сработать, т. Е. Действителен ли принцип, который я имею в виду?
  2. Если да, то где мои настройки неверны или неполны?

Большое спасибо за вашу помощь!

layout_atlas_setting

layout_map_ свойства

subbasin_symbology_settings

subbasin_symbology_settings_filter_evaluation

layout_as_is