Різниця між геометрією та $ геометрією QGIS


12

Це може бути тривіальним питанням, але я плутаю, яка різниця між геометрією та $ геометрією в QGIS? Я не знайшов прикладів використання цієї функції.

геометрія та $ геометрія

Особливо мене цікавить геометрія, в яких випадках це корисно?

Відповіді:


19

Прямо біля списку функцій, на яких є знімок екрана, має бути документація, яку ви вибрали на даний момент. Для мене з 2.18.12 ці читали:

$ geometry Повертає геометрію поточної функції. Можна використовувати для обробки з іншими функціями.

geometry Повертає геометрію функції.

Це подібно до методу проти функції в об'єктно-орієнтованому програмуванні. $ Геометрія цього / Селф «сек геометрії. Ви можете думати про це скоріше як атрибут чи властивість.

з іншого боку, геометрія вимагає / дозволяє передати їй функцію, і вона поверне відповідну геометрію. Як показано в документації, ви можете використовувати це для отримання геометрії з вибору функцій на основі атрибутів:

geometry(
  get_feature(layer, attributeField, value)
)

Що ще ви можете зробити з цим, лише обмежується вашою творчістю та джерелами для передачі функцій . :)


Отже, як я можу це використовувати при спробі перетворення окремих точок, що утворюють рядок ((make_line (make_point ("xlbl" -1000, "ilbl"), make_point (("xlbl" + довжина (("час")) * 3000 +7000), "ilbl"),) ... і т. Д. Я маю на увазі, що я хочу перетворити кожну точку лінії на основі координат у значеннях таблиць атрибутів
Jane

Я маю на увазі, що я повинен представляти кожну точку моєї лінії (від make_point func) як геометрію, а потім перетворювати її, якщо вся побудована геометрія make_line перетворює неправильну gis.stackexchange.com/questions/253002/…
Джейн

Певна річ. Це звучить як використання неправильного інструменту, чи ви пробували плагін point2one чи якусь іншу обробку?
bugmenot123

1
Ні, це стиль шару, я не можу використовувати будь-які додатки у властивостях шару. Я намагаюся вирішити свою проблему за допомогою вбудованих функцій qgis
Джейн

2
Порівняння властивостей звучить добре, але порівняння OO трохи слабке, $geometryце швидше змінна (const), незалежно від того, OO чи ні.
Маттіас Кун

15

$geometryповертає геометрію поточної функції як вgeom_to_wkt($geometry)

geometryповертає геометрію певної функції, як уgeom_to_wkt(geometry(get_feature('my_layer', 'my_feature', feature_id)))

Ви використовуєте другий випадок, якщо хочете, наприклад, обробити поточну функцію щодо певної функції:

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.