ป้ายกำกับที่ใช้นิพจน์ใน Atlas ที่เขียนสคริปต์ไม่สามารถอัปเดตได้


9

ฉันพยายามติดตามนักแต่งเพลงแบบเขียนโปรแกรมจากเทมเพลตและสร้างแอตลาสโดยใช้ pyQgisเพื่อทำให้แอปพลิเคชันการพิมพ์แอตลาสโดยอัตโนมัติโดยใช้ pyqgis:

เฉพาะในรหัส atlas พูดว่า:

    myAtlasMap = myComposition.getComposerMapById(0)
    myAtlas = QgsAtlasComposition(myComposition)
    myAtlas.setCoverageLayer(atlas_desktop)
    myAtlas.setComposerMap(myAtlasMap)
    myAtlas.setFixedScale(True)
    myAtlas.fixedScale()
    myAtlas.setHideCoverage(False)
    myAtlas.setFilterFeatures(True)

รหัสนี้ใช้ได้กับงานของฉันและฉันใช้แผนที่ atlas feutures ใหม่ 100 อัน แต่ในtemplate.qptฉันมีป้ายกำกับพร้อมรหัสดังนี้:

QGIS [%concat( "OBJECTID" )%]

นั่นOBJECTIDเป็นสิ่งเดียวกันสำหรับแผนที่ใหม่ทั้งหมด 100 แผนที่ มีความคิดอะไรไหม ถ้าฉันใช้การส่งออกแผนที่ด้วยตนเองแล้วสำหรับOBJECTIDการเปลี่ยนแปลงแผนที่ใด ๆ


ฉันมีรายละเอียดเพิ่มเติมจริงไม่ทำงานอะไรที่เกี่ยวข้องกับเลเยอร์แอตลาสในtemplate.qptฉันมีกฎสไตล์ฐานหรือกฎป้ายกำกับฐานดังนี้:

intersects($atlasgeometry, $geometry ) 

หรือ

$id = $atlasfeatureid

นั่นคือบางส่วนใน 100 แผนที่:

ฉลาก

ฉันคิดว่าเพื่อให้นักแต่งเพลงโหลดโปรแกรมจากเทมเพลตและสร้างแอตลาสโดยใช้ pyQgisเพียงแค่ส่งออกฟีเจอร์ของฉันจากเลเยอร์แอตลาสและแอตลาสในเทมเพลตของฉันเป็นเท็จ

ความคิดใด ๆ


2
หากคุณยังคงสนใจที่จะแก้ปัญหานี้โปรดโพสต์รหัสที่คุณใช้ในการสร้างแผนที่
firefly-orange

คำตอบ:


1

ทดสอบได้ยากโดยไม่ต้องสาธิต

จะเกิดอะไรขึ้นหากคุณมีความชัดเจนมากขึ้นในฉลากดังนั้น:

QGIS [% concat( attribute(  @atlas_feature , 'OBJECTID'))% ]
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.