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


12

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

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

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

Ответы:


19

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

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

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

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

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

geometry(
  get_feature(layer, attributeField, value)
)

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


Итак, как я могу использовать его при попытке преобразовать отдельные точки, которые образуют линию ((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)))

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.