Staram się używać narzędzi QGIS Atlas do budowania „map rozrzutu” uczniów, tj. pokaż szkołę i uczniów, którzy uczęszczają do tej szkoły, dla 215 szkół.
Warstwa szkolna jest warstwą pokrycia i zależy od wartości SCHNUM
(numeru szkoły). Działa to dobrze, to znaczy, że prowadzi strony poprawnie.
Jak jednak mogę wyświetlić tylko obiekty z innych warstw, w tym przypadku warstwy punktowej ucznia, które odpowiadają odpowiedniej SCHNUM
wartości dla bieżącego elementu w warstwie pokrycia?
Chciałbym również przełączyć warstwę pokrycia (szkoły) na „ukrytą” i użyć tej samej techniki, aby wyświetlić bieżącą szkołę tylko ze zduplikowanej warstwy szkół.
Dostępna jest tutaj prezentacja, która nawiązuje do użycia ustawienia reguły renderowania warstw przy użyciu $atlasfeatureid
, ale nie mogę zrozumieć, jak to działa.
Znalazłem też stronę śledzenia błędów, która pokazuje, że działa, ale znowu nie mogę zmusić jej do działania na moich danych:
Odpowiedzi:
Rzeczywiście, musisz użyć symboliki opartej na regułach, aby osiągnąć to, co chcesz.
Musisz utworzyć regułę dla tego, co chcesz pokazać, i regułę ELSE dla wszystkich innych.
W regule ELSE usuń zaznaczenie pola wyboru symbolu, aby był niewidoczny.
Ukryj inne funkcje z warstwy pokrycia
Reguła pokazująca tylko bieżącą funkcję atlasu może być następująca:
Uwaga : Uważam, że zmienna @atlas_featureid to składnia 2.12. Myślę, że w 2.8.x trzeba użyć funkcji o nazwie $ atlas_featureid.
Ukryj obiekty poza bieżącą funkcją atlasu
Przepis jest taki sam jak poprzednio, jedna zasada służy do ukrywania funkcji, jedna do pokazania.
W przypadku konkretnego pytania wydaje się, że masz wspólny atrybut o nazwie SCHNUM. W takim przypadku reguła może być:
w twoim szczególnym przypadku:
Zwróć uwagę na różnicę między obydwoma SCHNUM. Pierwszy, w podwójnych cudzysłowach, reprezentuje wartość każdej bieżącej funkcji warstwy pola, w którym przechowywany jest kod szkoły. Drugi, w pojedynczych cudzysłowach, jest ciągiem o nazwie warstwy pokrycia, która przechowuje kod szkoły.
Uwaga : ponownie myślę, że zmienna @atlas_feature jest „nową” rzeczą, aw 2.8.x będziesz musiał użyć funkcji $ atlas_feature
źródło