Perbedaan antara geometri dan $ geometri QGIS

12

Ini mungkin pertanyaan sepele, tapi saya bingung, apa perbedaan antara geometri dan $ geometri di QGIS? Saya tidak menemukan contoh menggunakan fungsi ini.

geometri dan $ geometri

Khususnya saya tertarik pada geometri, dalam hal apa itu membantu?

Jane
sumber

Jawaban:

19

Tepat di sebelah daftar fungsi tangkapan layar Anda, haruslah dokumentasi fungsi yang saat ini dipilih. Bagi saya, dengan 2.18.12 yang berbunyi:

$ geometry Mengembalikan geometri fitur saat ini. Dapat digunakan untuk memproses dengan fungsi lain.

geometry Mengembalikan geometri fitur.

Ini seperti perbedaan metode versus fungsi dalam pemrograman berorientasi objek. $ geometri ini / diri 's geometri. Anda dapat menganggapnya lebih seperti atribut atau properti.

geometri di sisi lain mengharuskan / memungkinkan Anda untuk mengirimkan fitur dan akan mengembalikan geometri yang sesuai. Seperti yang ditunjukkan oleh dokumentasi, Anda dapat menggunakan ini untuk mendapatkan geometri dari pemilihan fitur berbasis atribut:

geometry(
  get_feature(layer, attributeField, value)
)

Apa lagi yang dapat Anda lakukan dengan itu hanya dibatasi oleh kreativitas Anda dan sumber-sumber fitur untuk diteruskan. :)

bugmenot123
sumber
Jadi, bagaimana saya dapat menggunakannya ketika mencoba mengubah titik-titik terpisah yang membentuk garis ((make_line (make_point ("xlbl" -1000, "ylbl"), make_point (("xlbl" + panjang (("waktu")) * 3000 +7000), "ylbl"),) ... dll Maksud saya saya ingin mengubah setiap titik garis, berdasarkan koordinat dalam nilai tabel atribut
Jane
Saya kira saya harus mewakili setiap titik dari baris saya (dari make_point func) sebagai geometri, kemudian mentransformasikannya, sejauh seluruh geometri yang dibuat make_line mentransformasikan salah gis.stackexchange.com/questions/253002/…
Jane
Tentu saja. Ini kedengarannya seperti menggunakan alat yang salah, apakah Anda sudah mencoba plugin points2one atau pemrosesan lainnya?
bugmenot123
1
Tidak, ini adalah style dari layer, saya tidak bisa menggunakan plugins di properti layer. Saya mencoba menyelesaikan masalah saya dengan fungsi bawaan qgis
Jane
2
Perbandingan properti terdengar bagus tetapi perbandingan OO agak lemah, $geometryagak variabel (const), terlepas dari apakah OO atau tidak.
Matthias Kuhn
15

$geometrymengembalikan geometri fitur saat ini seperti padageom_to_wkt($geometry)

geometrymengembalikan geometri fitur tertentu seperti padageom_to_wkt(geometry(get_feature('my_layer', 'my_feature', feature_id)))

Anda akan menggunakan kasus kedua jika Anda ingin, misalnya, untuk memproses fitur saat ini terhadap fitur tertentu:

intersects($geometry,geometry(get_feature(layer,attributeField,value)))

campuran bredie
sumber