[GIS] Difference between geometry and $geometry QGIS

geometryqgis

This may be trivial question, but I'm confused, what is the difference between geometry and $geometry in QGIS? I didn't find any examples of using this function.

geometry and $geometry

Particularly I'm interested in geometry, in what cases it is helpful?

Best Answer

Right next to the list of functions your screenshot is of, should be the currently selected function's documentation. For me, with 2.18.12 those read:

$geometry Returns the geometry of the current feature. Can be used for processing with other functions.

geometry Returns a feature's geometry.

This is like the different of a method versus a function in object-oriented programming. $geometry is this/self's geometry. You can think of it more like an attribute or property maybe.

geometry on the other hand requires/allows you to pass a feature to it and it will return the corresponding geometry. As the documentation shows, you can use this to get the geometry from a attribute-based feature selection:

geometry(
  get_feature(layer, attributeField, value)
)

What else you can do with it is just limited by your creativity and the sources for features to pass to it. :)