Saya mencoba mendapatkan gaya label yang sama dari Orientasi Penempatan Perpendicular dari ArcGIS di QGIS. Karena QGIS tidak memiliki fitur ini sebagai default, opsi akan menggunakan penempatan khusus untuk ini.
Contoh ArcGIS:
Solusi di QGIS
Pengaturan:
Data yang ditentukan koordinat X (label di tengah baris):
$x_at( num_points( $geometry)/2)
Data yang ditentukan koordinat Y (sama dengan lokasi X):
$y_at( num_points( $geometry)/2)
Rotasi yang ditentukan data:
angle_at_vertex( $geometry , num_points( $geometry)/2)
Hanya untuk label 2/3, penempatan dapat diterima. Untuk garis dengan banyak celah dengan sudut yang berbeda, lebih sulit mendapatkan label yang bagus.
ArcGIS tampaknya mencari segmen garis dengan sedikit jeda atau segmen lurus. Apakah ada cara untuk mendapatkan koordinat atau geometri segmen garis lurus menggunakan pembuat Ekspresi untuk penempatan label yang lebih baik?
line_interpolate_angle($geometry, some lenght)
dan mengambil beberapaangle_at_vertex( $geometry , num_points( $geometry))
. Sebuah loop atas fungsi ini bisa menjadi pendekatan, tapi saya tidak bisa melakukannya secara langsung di pembuat ExpresionJawaban:
Solusi aktual
Misalkan jenis geometri ini:
Saya mencoba mencari penempatan yang bagus. Saya juga bekerja dengan atlas, jadi saya menggunakan jarak 3% fitur atlas dari bagian tengah garis interpolasi per simpul fitur untuk menempatkan label:
Sesuatu seperti ini:
Dan saya membuat panah dari vertex tengah fitur ke label:
Pengaturan:
Panah:
Generator geometri
Label
Data mendefinisikan X
Data mendefinisikan Y
Mungkin ini bisa bermanfaat bagi seseorang.
Jika ada pendekatan yang lebih baik, senang menerimanya.
sumber