Geometri ve $ geometri QGIS arasındaki fark


12

Bu önemsiz bir soru olabilir, ama kafam karıştı, QGIS'de geometri ve $ geometri arasındaki fark nedir? Bu işlevi kullanmak için herhangi bir örnek bulamadım.

geometri ve $ geometri

Özellikle geometriyle ilgileniyorum, hangi durumlarda yardımcı olur?

Yanıtlar:


19

Ekran görüntünüzün bulunduğu işlevler listesinin hemen yanında, seçili olan işlevin belgeleri olmalıdır. Benim için 2.18.12 ile olanlar:

$ geometry Geçerli özelliğin geometrisini döndürür. Diğer işlevlerle işlem yapmak için kullanılabilir.

geometri Bir özelliğin geometrisini döndürür.

Bu, yönelimli programlamadaki bir fonksiyondan bir yöntemin farkına benzer. $ geometry bu / self'in geometrisidir. Belki daha çok bir özellik veya özellik gibi düşünebilirsiniz.

Öte yandan geometri, bir özelliği ona iletmenizi gerektirir / buna izin verir ve karşılık gelen geometriyi geri döndürür . Belgelerin gösterdiği gibi, geometri bir özniteliğe dayalı özellik seçiminden almak için bunu kullanabilirsiniz:

geometry(
  get_feature(layer, attributeField, value)
)

Bununla başka ne yapabilirsiniz, sadece yaratıcılığınız ve ona iletilecek özelliklerin kaynağı ile sınırlıdır . :)


Yani, çizgi ((make_line (make_point ("xlbl" -1000, "ylbl"), make_point (("xlbl" + length (("time")) * 3000 oluşturan ayrı noktaları dönüştürmeye çalışırken nasıl kullanabilirim +7000), "ylbl"),) ... vb Demek istediğim, nitelik tablosu değerlerindeki koordinatlara göre satırın her noktasını dönüştürmek istiyorum
Jane

Sanırım çizgimin her noktasını (make_point func'tan) geometri olarak temsil etmeliyim, sonra dönüştürdüm, tüm inşa edilen geometri make_line yanlış gis'i
Jane

Tabi ki. Bu yanlış aracı kullanmak gibi geliyor, points2one eklentisini veya başka bir işlemi denediniz mi?
bugmenot123

1
Hayır, bu katman stili, katman özelliklerinde herhangi bir eklenti kullanamıyorum. Sorunumu qgis yerleşik işlevlerinin tonuyla çözmeye çalışıyorum
Jane

2
Özellik karşılaştırması kulağa hoş geliyor, ancak OO karşılaştırması biraz zayıf, $geometryOO olsun veya olmasın, (const) değişkendir.
Matthias Kuhn

15

$geometrygeçerli özelliğin geometrisini olduğu gibi döndürürgeom_to_wkt($geometry)

geometrygibi belirli bir özelliğin geometrisini döndürürgeom_to_wkt(geometry(get_feature('my_layer', 'my_feature', feature_id)))

Örneğin, geçerli özelliği belirli bir özelliğe karşı işlemek istiyorsanız ikinci durumu kullanırsınız:

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.