วิธีสร้างป้ายข้อความพร้อมกล่องพื้นหลัง


13

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

ฉันคิดว่าวิธีที่ง่ายที่สุดคือให้ผู้ใช้ตั้งค่าเลเบลสำหรับเลเยอร์ที่แอคทีฟตามที่ต้องการแล้วให้ปลั๊กอินของฉันสามารถคว้าข้อความเลเบลจากฟีเจอร์ในเลเยอร์และใช้สตริงข้อความเพื่อสร้างกล่อง ปัญหาของฉันคือฉันไม่สามารถหาวิธีเข้าถึงสตริงข้อความเหล่านั้นใน QGIS API สตริงฉลากสร้างขึ้นโดยเอ็นจิ้นการติดฉลากที่จัดเก็บใน QGIS ได้อย่างไรและฉันจะไปหาพวกเขาได้อย่างไร


1
คุณหมายถึงป้ายกำกับสำหรับคุณลักษณะเฉพาะของแต่ละจุดหรือไม่
RK

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

1
คุณคิดเกี่ยวกับสีบัฟเฟอร์ที่แข็งแกร่งหลังข้อความหรือไม่ ฉันทำอย่างนั้นในงานเดียว อีกที่ฉันเพิ่งบอกลูกค้าว่ามันไม่ใช่ตัวเลือก .... ดูเหมือนว่าคำขอทั่วไป ....
Willy

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

ฉันคิดว่าคำตอบของสิ่งนี้จะเป็นไปได้ว่าเมื่อฉลากถูกสร้างขึ้นโดยเครื่องมือการทำฉลากและแสดงลงบนผืนผ้าใบแผนที่พวกเขาจะได้รับการบันทึกเป็นเวกเตอร์ svg และไม่ใช่เป็นสายอักขระและแก้ไขไม่ได้ ฉันเห็นสิ่งนี้ในบล็อก แต่ฉันยังไม่สามารถยืนยันได้ดังนั้นจึงไม่ได้รับคำตอบอย่างเป็นทางการ (นอกจากนี้ฉันได้เรียนรู้ว่าฉลากโล่กำลังทำงานเป็นส่วนเสริมสำหรับที่คาดการณ์ไว้มาก 2.0)
MonsterMushroom

คำตอบ:


1

ใน QGIS 2.0 คุณสามารถสร้างสี่เหลี่ยมพื้นหลังวงรีหรือรูปร่าง SVG ที่กำหนดเองโดยไม่ต้องใช้ปลั๊กอิน เพียงไปที่ Layer Properties | ป้ายกำกับ ส่วนพื้นหลัง

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

หากคุณต้องการรหัสอะไร นี่อาจเป็นจุดเริ่มต้น: http://doc.qgis.org/api/qgspallabeling_8cpp_source.html#l04333


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