Unterschied zwischen Geometrie und $ geometry QGIS

12

Dies mag eine triviale Frage sein, aber ich bin verwirrt, was ist der Unterschied zwischen Geometrie und $ Geometrie in QGIS? Ich habe keine Beispiele für die Verwendung dieser Funktion gefunden.

Geometrie und $ Geometrie

Besonders interessiert mich die Geometrie, in welchen Fällen ist sie hilfreich?

Jane
quelle

Antworten:

19

Direkt neben der Liste der Funktionen, von denen Ihr Screenshot ist, sollte sich die Dokumentation der aktuell ausgewählten Funktion befinden. Für mich lauteten diese mit 2.18.12:

$ geometry Gibt die Geometrie des aktuellen Features zurück. Kann zur Verarbeitung mit anderen Funktionen verwendet werden.

Geometrie Gibt die Geometrie eines Features zurück.

Dies ist wie der Unterschied zwischen einer Methode und einer Funktion in der objektorientierten Programmierung. $ Geometrie ist dies / Selbst ‚s Geometrie. Sie können es sich vielleicht eher wie ein Attribut oder eine Eigenschaft vorstellen.

Geometrie auf der anderen Seite erfordert / können Sie eine Funktion zu übergeben , und es wird zurückkehren die entsprechende Geometrie. Wie die Dokumentation zeigt, können Sie diese verwenden, um die Geometrie aus einer attributbasierten Feature-Auswahl abzurufen:

geometry(
  get_feature(layer, attributeField, value)
)

Was kann man damit machen durch Ihre Kreativität und die Quellen für nur begrenzte Funktionen zu übergeben , um es. :)

bugmenot123
quelle
Wie kann ich es verwenden, wenn ich versuche, separate Punkte zu transformieren, die line ((make_line (make_point ("xlbl" -1000, "ylbl"), make_point (("xlbl" + length (("time"))) * 3000 bilden? +7000), "ylbl"),) ... etc Ich meine, dass ich jeden Punkt der Linie transformieren möchte, basierend auf Koordinaten in Attributtabellenwerten
Jane
Ich nehme an, ich muss jeden Punkt meiner Linie (von make_point func) als Geometrie darstellen und dann transformieren, sofern die gesamte konstruierte Geometrie make_line falsch transformiert. Gis.stackexchange.com/questions/253002/…
Jane
Sichere Sache. Das klingt so, als ob Sie das falsche Tool verwenden. Haben Sie das points2one-Plugin oder eine andere Verarbeitung ausprobiert?
Bugmenot123
1
Nein, dies ist ein Stil der Ebene. Ich kann keine Plugins in den Ebeneneigenschaften verwenden. Ich versuche, mein Problem mithilfe der in QGIS integrierten Funktionen zu lösen
Jane
2
Der Eigenschaftsvergleich klingt gut, aber der OO-Vergleich ist etwas schwach, $geometryeher eine (konstante) Variable, unabhängig davon, ob OO oder nicht.
Matthias Kuhn
15

$geometryGibt die Geometrie des aktuellen Features wie in zurückgeom_to_wkt($geometry)

geometryGibt die Geometrie eines bestimmten Features wie in zurückgeom_to_wkt(geometry(get_feature('my_layer', 'my_feature', feature_id)))

Sie würden den zweiten Fall verwenden, wenn Sie beispielsweise das aktuelle Feature gegen ein bestimmtes Feature verarbeiten möchten:

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

Mischling
quelle