วิธีทำให้เลเยอร์หรือกลุ่มไม่ปรากฏในแผงเลเยอร์


13

ฉันมีเลเยอร์จำนวนมากในเลเยอร์พาเนลภายในกลุ่ม แต่ฉันไม่ต้องการให้แสดง (มีค่อนข้างมากดังนั้นมันจึงดูไม่เป็นระเบียบ) เลเยอร์เหล่านี้จะเข้าร่วมกับคนอื่น ๆ หลายคน

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

ที่ใกล้ที่สุดที่ฉันพบคือโพสต์นี้ แต่หวังว่าจะมีวิธีการโดยตรงมากขึ้น:

แสดงเลเยอร์เพียงบางส่วนในตำนาน QGIS หรือไม่

คำตอบ:


15

ฉันพบว่าการทำให้เลเยอร์ / กลุ่ม 'มองไม่เห็น' มีประโยชน์เพื่อหลีกเลี่ยงการแสดงตารางการค้นหาซึ่งจำเป็นสำหรับความสัมพันธ์ที่มีคุณค่า แต่อาจทำให้แผงเลเยอร์ดูเกินพิกัดไปเล็กน้อย

เพื่อชี้แจงชัดเจนเลเยอร์ / กลุ่มที่มองไม่เห็นจะไม่ปรากฏในเลเยอร์พาเนล แต่ยังสามารถเห็นได้ในผืนผ้าใบหรือใช้ในการรวม / ความสัมพันธ์กับเลเยอร์อื่น ๆ


ตอบ:

ใช้ปลั๊กอินเลเยอร์และกลุ่มที่มองไม่เห็นซึ่งช่วยให้คุณ:

  • ทำให้มองไม่เห็นเลเยอร์ / กลุ่มที่เลือก (ปุ่มปลั๊กอิน)
  • ทำให้เลเยอร์ / กลุ่ม (ที่มองไม่เห็น) มองเห็นได้อีกครั้ง (ปุ่มปลั๊กอิน)
  • จัดเก็บเลเยอร์ / กลุ่มที่มองเห็นได้ในโครงการ QGIS ของคุณ
  • สร้างการมองเห็นเลเยอร์ / กลุ่มใหม่เมื่อเปิดโครงการ QGIS ของคุณ
  • ทำให้เลเยอร์ที่มองไม่เห็น (ตามรหัส)
  • ทำให้มองไม่เห็นกลุ่มใดกลุ่มหนึ่ง (ตามรหัส)

ทำให้เลเยอร์ที่มองไม่เห็น (ตามรหัส):

if 'InvisibleLayersAndGroups' in qgis.utils.plugins:
    ilg = qgis.utils.plugins['InvisibleLayersAndGroups']
    ilg.hideLayer( layer )    # layer is a QgsMapLayer

ทำให้กลุ่มมองไม่เห็น (ตามรหัส):

if 'InvisibleLayersAndGroups' in qgis.utils.plugins:
    ilg = qgis.utils.plugins['InvisibleLayersAndGroups']
    ilg.hideGroup( group )    # group is a QgsLayerTreeGroup
    ilg.hideGroup( 'group2' ) # You can also pass a group name

หมายเหตุ: มีปัญหาที่คุณควรระวัง หากคุณทำให้เลเยอร์ที่มองไม่เห็นแล้วย้ายกลุ่มผู้ปกครองเลเยอร์ที่มองไม่เห็นจะปรากฏให้เห็นอีกครั้ง (ฉันไม่รู้ว่าทำไม!) ดังนั้นคำแนะนำของฉันคือทำให้มองไม่เห็นเลเยอร์ / กลุ่มด้านบนเท่านั้น (หลังจากทั้งหมดคุณไม่สามารถย้ายรูตได้)


สิ่งที่ฉันกำลังมองหาขอบคุณมากสำหรับสิ่งนี้! อันที่จริงฉันมีหลายเลเยอร์ที่ใช้สำหรับการคำนวณ (ซึ่งทั้งหมดถูกรวมเข้ากับเลเยอร์อื่น) ดังนั้นฉันไม่ต้องการให้ผู้ใช้เห็นหรือแก้ไขเลเยอร์เหล่านี้ ดังนั้นวิธีการแก้ปัญหาของคุณอย่างมากแก้ปัญหานี้ คำถามหนึ่งข้อคุณเพิ่งใช้สิ่งนี้เป็นปลั๊กอินเมื่อเร็ว ๆ นี้หรือไม่?
Joseph

ใช่มันถูกเผยแพร่เมื่อหลายวันก่อน ฉันเคยสงสัยว่าจะซ่อนเลเยอร์มาก่อน แต่หลังจากคำถามนี้ฉันรับภาระงาน (ฉันจะต้องใช้สิ่งนี้ในที่ทำงานไม่ช้าก็เร็ว) ฉันคิดว่าจะตอบด้วยโค้ดขนาดสั้น แต่คำตอบนั้นนานพอที่จะซับซ้อนดังนั้นฉันชอบที่จะสรุปในปลั๊กอินซึ่งใช้งานง่ายกว่ามาก
Germán Carrillo

ดีมันเป็นปลั๊กอินที่ดีเพื่อให้ได้รับการโหวตให้มัน :)
โจเซฟ

+1 ปลั๊กอินที่มีประโยชน์มาก โดยเฉพาะอย่างยิ่งสำหรับงานของฉันจะเจาะจงในการทำแผนที่ข้อมูลในฟิลด์ด้วย Tough Book + QGIS เพื่อหลีกเลี่ยงเลเยอร์พาเนลที่โอเวอร์โหลด (การเลื่อนใช้เวลาในฟิลด์) ฉันมีข้อเสนอแนะ (อาจจะปรับปรุงปลั๊กอินของคุณ (หรือไม่)): คุณสามารถใช้งานได้หรือไม่ว่าปลั๊กอินนั้นจดจำเลเยอร์ที่คุณทำเครื่องหมายหนึ่งครั้งและทำให้พวกเขามองไม่เห็นอีกครั้งเมื่อปุ่มปลั๊กอิน (ทำให้มองไม่เห็น) หากต้องการตั้งค่าการมองไม่เห็น (เลเยอร์ / กลุ่ม) อื่นคุณต้องเลือกพวกมันใหม่
Stefan

เยี่ยมมากที่คุณพบว่าปลั๊กอินมีประโยชน์! ขอบคุณสำหรับคำแนะนำของคุณคุณคิดจะเพิ่มคำขอคุณลักษณะ (ปัญหา) ใหม่ในGitHubหรือไม่
Germán Carrillo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.