Bagaimana cara membuat label teks dengan kotak latar belakang?

13

Saya mencoba membuat beberapa label khusus untuk fitur titik dalam layer vektor titik QGIS, dan saya ingin menulis plugin python untuk melakukannya. Kita perlu label kita disajikan dengan persegi panjang berwarna di belakangnya (atau yang lain!). Label adalah string panjang, dan dibuat menggunakan ekspresi dan kondisi mesin pelabelan.

Saya pikir cara termudah adalah membiarkan pengguna mengatur label untuk lapisan aktif seperti yang mereka inginkan, dan kemudian membiarkan plugin saya dapat mengambil teks label dari fitur di lapisan dan menggunakan string teks untuk membuat kotak. Masalah saya adalah saya tidak dapat menemukan cara untuk mengakses string teks tersebut di QGIS API. Bagaimana string label yang dihasilkan oleh mesin pelabelan disimpan di QGIS dan bagaimana saya bisa mendapatkannya?

MonsterMushroom
sumber
1
Menurut label, maksud Anda label untuk fitur titik individual?
RK
Iya. Dan saya ingin ini dilakukan pada level layer, bukan pada level komposer cetak. Saya mencoba membuat kotak teks secara otomatis karena saya tidak menyadari bahwa itu adalah fitur komposer cetak, dan itu benar-benar jelek.
MonsterMushroom
1
Pernahkah Anda memikirkan warna buffer yang kuat di belakang teks? Saya melakukan itu pada satu pekerjaan. Di lain saya hanya mengatakan kepada klien itu bukan pilihan .... Tampaknya permintaan umum ....
Willy
1
Buffer warna yang kuat adalah solusi saya saat ini. Namun, klien memiliki kotak (menggunakan skrip) dalam implementasi ArcGIS mereka, dan mereka ingin melihat hal yang sama di QGIS. (Kami mencoba mengubah sistem.) Jawaban saya saat ini adalah bahwa ini bukan pilihan, tetapi itu tidak pernah merupakan jawaban yang menyenangkan, dan saya benar-benar ingin mengeluarkan sesuatu dari saku saya. Plus, kotak di sekitar label harus menjadi sesuatu yang bisa kita lakukan. Masuk akal.
MonsterMushroom
Saya pikir jawabannya adalah bahwa begitu label dihasilkan oleh mesin pelabelan dan diberikan ke kanvas peta, mereka disimpan sebagai vektor svg, dan bukan sebagai string dan dengan demikian tidak dapat diperbaiki. Saya melihat ini di blog tetapi saya belum bisa (punya waktu untuk) mengkonfirmasinya, jadi itu bukan jawaban resmi. (Juga, saya telah belajar bahwa label pelindung sedang dikerjakan sebagai tambahan untuk 2.0 yang banyak dinanti)
MonsterMushroom

Jawaban:

1

Di QGIS 2.0, Anda bisa membuat persegi panjang latar belakang, oval atau bentuk SVG khusus tanpa perlu plugin. Cukup buka Layer Properties | Label | Bagian latar belakang.

masukkan deskripsi gambar di sini

Jika Anda ingin kode sesuatu. Ini mungkin menjadi titik awal: http://doc.qgis.org/api/qgspallabeling_8cpp_source.html#l04333

underdark
sumber
Menyenangkan! 2.0 akan menjadi lima jenis keren. Kami menunggu dengan napas tertahan.
MonsterMushroom