To może być banalne pytanie, ale nie wiem, jaka jest różnica między geometrią a geometrią $ w QGIS? Nie znalazłem żadnych przykładów użycia tej funkcji.
Szczególnie interesuje mnie geometria, w jakich przypadkach jest pomocna?
Tuż obok listy funkcji, na których znajduje się zrzut ekranu, powinna znajdować się dokumentacja aktualnie wybranej funkcji. Dla mnie w wersji 2.18.12 czytają:
$ geometria Zwraca geometrię bieżącego elementu. Może być używany do przetwarzania z innymi funkcjami.
geometria Zwraca geometrię elementu.
To jest coś innego niż metoda w programowaniu obiektowym. $ geometria to geometria tego / własnego . Możesz myśleć o tym bardziej jak o atrybucie lub właściwości.
z drugiej strony geometria wymaga / pozwala przekazać do niej element, a on zwróci odpowiednią geometrię. Jak pokazuje dokumentacja, możesz tego użyć, aby uzyskać geometrię z wyboru funkcji opartego na atrybutach:
geometry(
get_feature(layer, attributeField, value)
)
To, co jeszcze możesz z tym zrobić, jest ograniczone jedynie twoją kreatywnością i źródłami funkcji, które można do niej przekazać. :)
$geometry
jest raczej zmienną (stałą), niezależnie od tego, czy OO, czy nie.$geometry
zwraca geometrię bieżącego elementu jak wgeom_to_wkt($geometry)
geometry
zwraca geometrię określonego elementu jak wgeom_to_wkt(geometry(get_feature('my_layer', 'my_feature', feature_id)))
Drugiego przypadku użyłbyś, gdybyś chciał na przykład przetworzyć bieżącą funkcję w stosunku do konkretnej funkcji:
intersects($geometry,geometry(get_feature(layer,attributeField,value)))
źródło