Dengan asumsi topologi sempurna, menciptakan bidang 'WKT' dengan ekspresi
geom_to_wkt( $geometry)
di layer titik Anda, Anda bisa menggunakan ekspresi:
min( attribute( get_feature('points','WKT', geom_to_wkt(start_point($geometry) )),'year'),attribute( get_feature('points','WKT', geom_to_wkt(end_point($geometry) )),'year'))||'-'|| max( attribute( get_feature('points','WKT', geom_to_wkt(start_point($geometry) )),'year'),attribute( get_feature('points','WKT', geom_to_wkt(end_point($geometry) )),'year'))
di kalkulator bidang lapisan pipa, membuat string teks.
- attribute (feature, attribute_name) Mengembalikan nilai atribut yang ditentukan dari fitur, di sini, tahun dari fitur poin yang
diperoleh.
- get_feature (layer, atribut, value) mengembalikan fitur pertama dari sebuah layer yang cocok dengan nilai atribut yang diberikan. Di sini kami memeriksa apakah kami dapat menemukan titik dengan koordinat yang sama (dalam format WKT) dengan titik
awal dan titik akhir garis Anda.
- start_point (geometri) mengembalikan simpul pertama dari geometri. Di sini titik pertama dari baris Anda.
- end_point (geometry) mengembalikan simpul terakhir dari geometri. Di sini titik terakhir dari baris Anda.
- geom_to_wkt (geometry) mengembalikan representasi geometri Teks yang Dikenali dengan Baik.
Anda bahkan dapat memperbaruinya ke:
CASE
WHEN attribute( get_feature('points','WKT', geom_to_wkt(start_point($geometry) )),'year') = attribute( get_feature('points','WKT', geom_to_wkt(end_point($geometry) )),'year')
THEN attribute( get_feature('points','WKT', geom_to_wkt(end_point($geometry) )),'year')
ELSE min( attribute( get_feature('points','WKT', geom_to_wkt(start_point($geometry) )),'year'),attribute( get_feature('points','WKT', geom_to_wkt(end_point($geometry) )),'year'))||'-'|| max( attribute( get_feature('points','WKT', geom_to_wkt(start_point($geometry) )),'year'),attribute( get_feature('points','WKT', geom_to_wkt(end_point($geometry) )),'year'))
END
untuk menunjukkan hanya satu tahun jika dua poin dengan tahun yang sama terhubung (mendapatkan 200X bukannya 200X-200X).
Keuntungan utama dari metode ini adalah bahwa jika data Anda berubah dalam poin Anda, Anda dapat memperbaruinya dengan sangat cepat hanya dengan satu kalkulator bidang.
Anda bahkan bisa menambahkan aturan ini sebagai Autofield ketika Anda membuat baris baru.
Bersulang,