กรองคุณสมบัติในเลเยอร์อื่น ๆ ของ QGIS Atlas หรือไม่


22

ฉันกำลังพยายามใช้เครื่องมือ QGIS Atlas เพื่อสร้าง 'scattermaps' ของนักเรียนเช่น จัดแสดงโรงเรียนและนักเรียนที่เข้าเรียนในโรงเรียน 215 แห่ง

เลเยอร์โรงเรียนเป็นชั้นความครอบคลุมและถูกขับเคลื่อนโดยค่าSCHNUM(หมายเลขโรงเรียน) สิ่งนี้ทำงานได้ดีนั่นคือมันกำลังขับหน้าได้อย่างถูกต้อง

อย่างไรก็ตามฉันจะแสดงเฉพาะคุณลักษณะจากเลเยอร์อื่นในกรณีนี้คือเลเยอร์จุดนักเรียนซึ่งตรงกับSCHNUMค่าที่เกี่ยวข้องสำหรับฟีเจอร์ปัจจุบันในเลเยอร์ความครอบคลุมได้อย่างไร

ฉันต้องการเปลี่ยนเลเยอร์ความครอบคลุม (โรงเรียน) เป็น 'ซ่อนเร้น' และใช้เทคนิคเดียวกันเพื่อแสดงเฉพาะโรงเรียนปัจจุบันจากเลเยอร์โรงเรียนซ้ำ

มีการนำเสนออยู่ที่นี่ซึ่งแสดงถึงการใช้การตั้งค่ากฎการแสดงผลเลเยอร์โดยใช้$atlasfeatureidแต่ฉันไม่สามารถเข้าใจวิธีการใช้งาน

ฉันยังพบหน้าตัวติดตามบั๊กที่แสดงสิ่งนี้ทำงานได้ แต่อีกครั้งฉันไม่สามารถนำไปใช้กับข้อมูลของฉันได้:


ขออภัยที่โพสต์สิ่งนี้เป็นคำตอบแม้ว่าจะเป็นคำถามก็ตาม มีบทแนะนำวิดีโอแนะนำสำหรับเรื่องนี้หรือไม่? ฉันลองทำตามและจัดการบางอย่างที่จะหลงทางในบางจุด มีปัญหาเดียวกัน
JRamos

คำตอบ:


41

แน่นอนคุณต้องใช้สัญลักษณ์ตามกฎเพื่อให้บรรลุสิ่งที่คุณต้องการ

คุณต้องสร้างกฎสำหรับสิ่งที่คุณต้องการแสดงและกฎอื่น ๆ สำหรับทุกคน

ป้อนคำอธิบายรูปภาพที่นี่

ในกฎ ELSE ยกเลิกการเลือกช่องทำเครื่องหมายสัญลักษณ์เพื่อให้มองไม่เห็น

ป้อนคำอธิบายรูปภาพที่นี่

ซ่อนคุณสมบัติอื่น ๆ จากเลเยอร์การครอบคลุม

กฎที่จะแสดงเฉพาะคุณลักษณะแผนที่ปัจจุบันเท่านั้นสามารถเป็นดังนี้:

$id  =  @atlas_featureid 

ป้อนคำอธิบายรูปภาพที่นี่

หมายเหตุ : ฉันเชื่อว่าตัวแปร @atlas_featureid เป็นไวยากรณ์ 2.12 ฉันคิดว่าใน 2.8.x คุณจะต้องใช้ฟังก์ชั่นที่เรียกว่า $ atlas_featureid

ซ่อนคุณลักษณะภายนอกคุณลักษณะแผนที่ปัจจุบัน

สูตรนี้เหมือนกันก่อนหน้านี้อีกสูตรหนึ่งที่จะซ่อนคุณสมบัติหนึ่งรายการที่จะแสดง

สำหรับคำถามเฉพาะของคุณคุณดูเหมือนจะมีแอตทริบิวต์ที่ใช้ร่วมกันที่เรียกว่า SCHNUM ในกรณีนั้นกฎสามารถ:

"Layers_field" = attribute (@atlas_feature, 'coverage_layer_field_name')

ในกรณีเฉพาะของคุณ:

"SCHNUM"  =  attribute( @atlas_feature , 'SCHNUM')

สังเกตเห็นความแตกต่างระหว่างทั้งสอง SCHNUM ครั้งแรกในเครื่องหมายคำพูดคู่หมายถึงค่าของแต่ละคุณสมบัติเลเยอร์ปัจจุบันของเขตข้อมูลที่เก็บรหัสโรงเรียน ที่สองในอัญประกาศเดี่ยวเป็นสตริงที่มีชื่อของเลเยอร์ความครอบคลุมที่เก็บรหัสโรงเรียน

หมายเหตุ : อีกครั้งฉันคิดว่าตัวแปร @atlas_feature เป็นสิ่งที่ "ใหม่" และใน 2.8.x คุณจะต้องใช้ฟังก์ชัน $ atlas_feature

ป้อนคำอธิบายรูปภาพที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.