Я пытаюсь использовать инструменты QGIS Atlas для создания «точечных карт» учеников, т.е. отобразить школу и учащихся, которые посещают эту школу, для 215 школ.
Уровень школ является слоем покрытия и определяется значением SCHNUM
(номера школы). Это работает нормально, то есть правильно ведет страницы.
Как, однако, я могу отображать только объекты из других слоев, в данном случае слой ученической точки, которые соответствуют соответствующему SCHNUM
значению для текущего объекта в слое покрытия?
Я также хотел бы переключить слой покрытия (школы) на «скрытый» и использовать ту же технику, чтобы отображать текущую школу только из дублированного слоя школ.
Здесь есть доступная презентация, которая ссылается на использование настройки правила рендеринга слоя $atlasfeatureid
, но я не могу понять, как это работает.
Я также нашел страницу отслеживания ошибок, которая показывает, как это работает, но опять же, я не могу заставить ее работать с моими данными:
Ответы:
Действительно, вам нужно использовать символику на основе правил, чтобы достичь того, чего вы хотите.
Вам нужно создать правило для того, что вы хотите показать, и правило ELSE для всех остальных.
В правиле ELSE снимите флажок с символа, чтобы сделать его невидимым.
Скрыть другие функции из слоя покрытия
Правило отображения только текущей функции атласа может быть следующим:
примечание : я считаю, что переменная @atlas_featureid имеет синтаксис 2.12. Я думаю, что в 2.8.x вам нужно будет использовать функцию с именем $ atlas_featureid.
Скрыть объекты вне текущей функции атласа
Рецепт такой же, как и раньше, еще одно правило, чтобы скрыть функции, одно, чтобы показать.
По вашему конкретному вопросу у вас, похоже, есть общий атрибут с именем SCHNUM. В этом случае правило может быть:
в вашем конкретном случае:
Обратите внимание на разницу между двумя SCHNUM. Первый в двойных кавычках представляет значение каждого текущего элемента слоя в поле, в котором хранится школьный код. Второе, в одинарных кавычках, представляет собой строку с названием слоя покрытия, в котором хранится школьный код.
Примечание : опять же, я думаю, что переменная @atlas_feature - это «новая» вещь, и в 2.8.x вам нужно будет использовать функцию $ atlas_feature
источник