Разница между геометрией и $ геометрией QGIS

12

Это может быть тривиальный вопрос, но я запутался, в чем разница между геометрией и геометрией $ в QGIS? Я не нашел примеров использования этой функции.

геометрия и $ геометрия

Особенно меня интересует геометрия, в каких случаях это полезно?

Джейн
источник

Ответы:

19

Прямо рядом со списком функций вашего скриншота должна быть документация выбранной функции. Для меня с 2.18.12 те читают:

$ geometry Возвращает геометрию текущего объекта. Может использоваться для обработки с другими функциями.

геометрия Возвращает геометрию объекта.

Это похоже на отличие метода от функции в объектно-ориентированном программировании. $ геометрия это геометрия этого / себя . Вы можете думать об этом больше как атрибут или свойство, может быть.

геометрия, с другой стороны, требует / позволяет вам передать элемент, и он вернет соответствующую геометрию. Как видно из документации, вы можете использовать это, чтобы получить геометрию из выбора атрибутов на основе атрибутов:

geometry(
  get_feature(layer, attributeField, value)
)

То, что вы можете сделать с ним, ограничено вашим творческим потенциалом и источниками возможностей, которые можно передать. :)

bugmenot123
источник
Итак, как я могу использовать его при попытке преобразовать отдельные точки, которые образуют линию ((make_line (make_point ("xlbl" -1000, "ylbl"), make_point (("xlbl" + length (("time")) * 3000 +7000), "ylbl"),) ... и т. Д. Я имею в виду, что я хочу преобразовать каждую точку линии на основе координат в значениях таблицы атрибутов
Джейн
Я полагаю, что мне нужно представить каждую точку моей линии (из make_point func) в виде геометрии, а затем преобразовать ее, поскольку вся построенная геометрия make_line преобразуется неправильно gis.stackexchange.com/questions/253002/…
Джейн,
Конечно, вещь. Это похоже на использование не того инструмента, вы пробовали плагин points2one или какую-то другую обработку?
bugmenot123
1
Нет, это стиль слоя, я не могу использовать плагины в свойствах слоя. Я пытаюсь решить мою проблему с помощью встроенных функций
Jane
2
Сравнение свойств звучит хорошо, но сравнение ОО немного слабое, $geometryскорее (постоянная) переменная, независимо от того, ОО или нет.
Матиас Кун
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)))

mixedbredie
источник