Garis Lurus dari Label ke Fitur di QGIS?

11

Apa yang saya coba lakukan adalah memberi label serangkaian fitur titik tetapi karena kepadatan fitur titik saya harus memindahkan label dari fitur titik. Saya kemudian ingin menggunakan garis lurus sederhana (bukan panah) untuk menunjukkan label mana yang merujuk ke titik mana.

Saya telah menggunakan plugin "Label Kustom Mudah" untuk membuat label dan memindahkannya ke tempat yang saya inginkan. Tapi yang tidak bisa saya lakukan adalah membuat garis lurus tipis sederhana antara titik dan tabel.

Yang terbaik yang saya raih adalah mengubah "simbol layer type" (Label layer> Properties> Style) menjadi "panah", hapus centang "panah melengkung" dan hapus centang "ulangi panah pada setiap segmen". Dan kemudian buat panjang dan tebal kepala 0 dan buat "panah lebar" dan "panah lebar di awal" karena ini mungkin. Tapi ini masih menciptakan garis tebal. Lihat gambar A.

Saya sudah mencoba mengatur "simbol nanti ketik" menjadi "garis sederhana" tetapi ini menghasilkan garis dengan kinks / simpul / sudut di dalamnya. Lihat gambar B.

Idealnya, saya ingin garis lurus antara label dan fitur (seperti pada gambar A) yang lebarnya mirip dengan yang ada di gambar B.

Contoh dua jenis pelabelan

QGIS_Noob
sumber

Jawaban:

11

Anda bisa menggunakan ekspresi untuk membuat garis antara label dan geometri

masukkan deskripsi gambar di sini

Ekspresi:

CASE 
 WHEN (label_x IS NOT NULL AND label_y IS NOT NULL) THEN
  make_line(centroid($geometry),make_point(label_x -2,label_y), make_point(label_x ,label_y))
ELSE
  NULL
END

Dan ini seharusnya hasilnya:

masukkan deskripsi gambar di sini

Carlos López Quintanilla
sumber
Hanya sidenote, jika label dipindahkan secara manual menggunakan bilah alat pelabelan properti dan posisi disimpan dalam proyek, label_x, variabel y berubah menjadi bidang yang disebut "auxiliary_storage_labeling_positionx" dan "auxiliary_storage_labeling_positiony".
Gabriel C.
1
Menempatkan titik tengah Anda 2 unit ke barat seperti yang Anda lakukan di sini make_point(label_x -2,label_y)akan membuat label di pantai barat terlihat lucu. Juga, bekerja pada skala yang berbeda akan membuat ini tidak berguna. Akan lebih baik mengatur titik ini dalam kaitannya dengan jarak ke label Anda dan posisi relatif dari centroid Anda.
Albert
2

Jawaban Carlos membuat pemimpin yang selaras secara horizontal pada ujung label meskipun hanya satu titik kurang pada generator geometri yang memberikan garis lurus. Dalam contoh saya, saya memindahkan label secara manual menggunakan toolbar pelabelan di QGIS 3.0.3. Perhatikan bahwa teknik ini dapat ditemukan dalam pertanyaan 232709 .

Satu-satunya perubahan yang perlu saya lakukan adalah nilai x, y dalam ekspresi saya:

CASE
   WHEN ("auxiliary_storage_labeling_positionx" IS NOT NULL AND "auxiliary_storage_labeling_positiony" IS NOT NULL) THEN
        make_line(centroid($geometry),make_point("auxiliary_storage_labeling_positionx","auxiliary_storage_labeling_positiony"))
   ELSE
      NULL
END

Adapun garis pemimpin sendiri, pohon simbologi berjalan seperti ini:

  • Mengisi
    • Generator geometri
      • Baris
        • Garis penanda
          • Penanda
            • Penanda sederhana
          • Garis sederhana

Untuk memastikan bahwa para pemimpin berakhir di pusat label, cukup edit nilai-nilai di data label yang ditetapkan rata untuk 'Pusat' untuk horizontal dan 'Setengah' untuk vertikal. Untuk gaya garis ke apa pun yang Anda butuhkan, gunakan garis sederhana bersarang di garis penanda.

Gabriel C.
sumber