Hanya menunjukkan penanda titik ketika label ditampilkan di QGIS?


8

Apakah ada peluang untuk mendefinisikan aturan gaya QGIS hanya untuk menunjukkan penanda titik ketika label mereka ditampilkan?

Tujuan saya adalah untuk mengecualikan semua poin yang tidak diberi label karena tabrakan antar label.

Contoh:

cara mengganti titik yang tidak terlihat saat labelnya runtuh


Bisakah Anda memberikan beberapa screenshot layar dari tabel atribut Anda dan poin saat ini yang ditampilkan di peta?
whyzar

@whyzar Contoh gambar diunggah
Jakob

2
Tabrakan juga dapat dikurangi, jika Anda mengatur opsi "Mencegah Label dari Fitur yang Meliputi" di tab Rendering.
PETA

Saya tidak berpikir ini bisa dilakukan. Tidak ada dalam API untuk memeriksa apakah label terlihat: qgis.org/api/classQgsLabel.html
HeikkiVesanto

Pertanyaan lain telah diajukan yang mencakup kebutuhan / keinginan untuk mendeteksi fitur mana yang diberi label atau tidak. Setiap jawaban yang berguna untuk itu mungkin memberi seseorang sudut pandang baru untuk mendekati yang ini.
Phil G

Jawaban:


3

Ini tidak ideal, tetapi jika Anda setuju dengan label yang selalu muncul di penanda, Anda dapat menggunakan latar belakang pada label Anda sebagai solusinya.

  1. Pergi ke Layer Properties, dan di bawah Style pilih "No simbol" (ya, Anda baca itu benar).
  2. Di bawah Label, pilih Latar Belakang dari sub-menu (terlihat seperti simbol jalan raya Interstate). Saya biasanya menggunakan SVG, tetapi sebuah lingkaran mungkin berfungsi dengan baik untuk apa yang Anda inginkan.
  3. Di sub-menu Latar Belakang, tentukan Jenis Ukuran Anda: Buffer atau Tetap. Dengan Buffer, simbol akan membesar hingga cukup besar untuk mencakup semua teks, jadi saya harap Anda ingin memperbaikinya. Contoh di bawah ini menggunakan buffer.
  4. Di bagian atas bagian Label, pilih bidang yang ingin Anda beri label, atau masukkan ekspresi.
  5. Pastikan Penempatan tidak diimbangi.

Kerugian:

  1. Komplikasi memiliki simbol yang ditampilkan dalam legenda di komposer cetak (ada solusi dengan membuat lapisan lain dan merujuknya dalam daftar isi, sebelum mematikan dan mengunci lapisan)
  2. Teks dipusatkan pada simbol. Anda dapat menggabungkan ruang ke bagian depan label untuk menggesernya dengan benar, tetapi kemudian lebih banyak label lainnya dikaburkan dan tidak muncul. Anda tidak mendapatkan opsi untuk memindahkan label di sekitar titik dengan jumlah konflik paling sedikit.
  3. Anda kehilangan banyak fungsi dalam pemformatan simbol, seperti skala warna.
  4. Tampaknya konflik label kadang-kadang harus lebih parah untuk menyembunyikan label - tambang saya terkadang tumpang tindih tanpa beberapa finagling. Ini mungkin akibat menggunakan jenis ukuran buffer.

Contoh yang mengambil nama file dari "field_1" dan menghapus ekstensi .jpg untuk membentuk teks label untuk lokasi foto:

pengaturan

Hasil:

diperbesar: diperbesar dan diperbesar: diperkecil

(perhatikan - arah yang ditunjukkan ikon svg diatur oleh ekspresi yang merujuk bidang lain dalam tabel)



-2

Cukup pilih semua nilai yang memiliki label menggunakan kueri, ekspor ke lapisan baru daripada menggunakan lapisan yang baru dibuat.


Bisakah Anda memberi saya contoh permintaan singkat untuk memilih nilai yang saat ini menunjukkan label?
Jakob

Pastikan berikan tangkapan layar dari tabel atribut yang Anda kerjakan dan bidang mana yang memiliki label yang Anda inginkan.
NULL. Bung

Saya baru menyadari ini untuk QGIS. Saya bekerja terutama dengan ArcGIS tetapi secara teori prosesnya harus sama, untuk memilih semua data yang terkait dengan nilai-nilai yang memiliki label, kemudian buat layer baru dengan nilai-nilai yang dipilih.
NULL. Bung

-3

Tetapkan aturan (gaya berbasis aturan) ke simbol Anda :

"label" IS NOT NULL

(dengan asumsi, bidang Anda untuk label bernama "label")

Sekarang simbol akan ditampilkan, jika bidang untuk label tidak kosong.


2
Saya tidak berpikir itulah yang diminta OP. Nilai-nilai dalam label tidak akan menjadi nol, mereka hanya tidak ditampilkan karena mereka tumpang tindih dengan label lain.
HeikkiVesanto

@ Vesanto Ya, nilainya tidak NULL.
Jakob
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.