Differenza tra geometria e $ geometria QGIS


12

Questa può essere una domanda banale, ma sono confuso, qual è la differenza tra geometria e $ geometria in QGIS? Non ho trovato alcun esempio di utilizzo di questa funzione.

geometria e $ geometria

In particolare sono interessato alla geometria, in quali casi è utile?

Risposte:


19

Proprio accanto all'elenco delle funzioni del tuo screenshot, dovrebbe esserci la documentazione della funzione attualmente selezionata. Per me, con 2.18.12 quelli leggono:

$ geometry Restituisce la geometria della funzione corrente. Può essere utilizzato per l'elaborazione con altre funzioni.

geometria Restituisce la geometria di una feature.

Questo è come il diverso di un metodo rispetto a una funzione nella programmazione orientata agli oggetti. $ geometry è la geometria di questo / sé . Puoi pensarlo più come un attributo o una proprietà forse.

la geometria, d'altra parte, richiede / consente di passarvi una funzione e restituirà la geometria corrispondente. Come mostra la documentazione, è possibile utilizzarlo per ottenere la geometria da una selezione di funzioni basata sugli attributi:

geometry(
  get_feature(layer, attributeField, value)
)

Che altro si può fare con esso è solo limitato dalla vostra creatività e le fonti per caratteristiche di passare ad esso. :)


Quindi, come posso usarlo quando provo a trasformare punti separati che formano la linea ((make_line (make_point ("xlbl" -1000, "ylbl"), make_point (("xlbl" + length (("time")) * 3000 +7000), "ylbl"),) ... ecc. Voglio dire che voglio trasformare ogni punto della linea, in base alle coordinate nei valori della tabella degli attributi
— Jane

Suppongo di dover rappresentare ogni punto della mia linea (da make_point func) come geometria, quindi trasformarla, nella misura in cui l'intera geometria costruita make_line trasforma erroneamente gis.stackexchange.com/questions/253002/…
— Jane

Cosa certa. Sembra come usare lo strumento sbagliato, hai provato il plug-in points2one o qualche altra elaborazione?
— bugmenot123

1
No, questo è uno stile del livello, non riesco a usare alcun plugin nelle proprietà del livello. Cerco di risolvere il mio problema grazie alle funzioni integrate di qgis
— Jane,

2
Il confronto delle proprietà suona bene, ma il confronto OO è un po 'debole, $geometryè piuttosto una variabile (const), indipendentemente dal fatto che OO o meno.
— Matthias Kuhn,

15

$geometryrestituisce la geometria della funzione corrente come ingeom_to_wkt($geometry)

geometryrestituisce la geometria di una funzione specifica come ingeom_to_wkt(geometry(get_feature('my_layer', 'my_feature', feature_id)))

Utilizzeresti il ​​secondo caso se, ad esempio, desideri elaborare la funzione corrente rispetto a una funzione specifica:

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.