Sự khác biệt giữa hình học và $ hình học QGIS


12

Đây có thể là câu hỏi tầm thường, nhưng tôi bối rối, sự khác biệt giữa hình học và $ hình học trong QGIS là gì? Tôi không tìm thấy bất kỳ ví dụ về việc sử dụng chức năng này.

hình học và $ hình học

Đặc biệt tôi quan tâm đến hình học, trong trường hợp nào nó hữu ích?

Câu trả lời:


19

Ngay bên cạnh danh sách các chức năng mà ảnh chụp màn hình của bạn là, nên là tài liệu hiện tại của chức năng được chọn. Đối với tôi, với 2.18.12 những người đọc:

$ hình học Trả về hình dạng của tính năng hiện tại. Có thể được sử dụng để xử lý với các chức năng khác.

hình học Trả về hình học của một tính năng.

Điều này giống như sự khác biệt của một phương thức so với một chức năng trong lập trình hướng đối tượng. $ hình học là hình học này / tự . Bạn có thể nghĩ về nó giống như một thuộc tính hoặc tài sản có thể.

mặt khác hình học yêu cầu / cho phép bạn truyền một tính năng cho nó và nó sẽ trả về hình dạng tương ứng. Như tài liệu cho thấy, bạn có thể sử dụng điều này để lấy hình học từ lựa chọn tính năng dựa trên thuộc tính:

geometry(
  get_feature(layer, attributeField, value)
)

Những gì bạn có thể làm với nó chỉ bị giới hạn bởi sự sáng tạo của bạn và các nguồn cho các tính năng truyền sang nó. :)


Vì vậy, làm thế nào tôi có thể sử dụng nó khi cố gắng chuyển đổi các điểm riêng biệt tạo thành dòng ((make_line (make_point ("xlbl" -1000, "ylbl"), make_point (("xlbl" + length (("time")) * 3000 +7000), "ylbl"),) ... vv Ý tôi là tôi muốn biến đổi mọi điểm của dòng, dựa trên tọa độ trong các giá trị bảng thuộc tính
Jane

Tôi cho rằng tôi phải biểu diễn mọi điểm trong dòng của mình (từ make_point func) dưới dạng hình học, sau đó biến đổi nó, cho đến khi toàn bộ hình học được tạo ra make_line biến đổi sai gis.stackexchange.com/questions/253002/iêu
Jane

Điều chắc chắn. Điều này nghe có vẻ như sử dụng sai công cụ, bạn đã thử plugin points2one hoặc một số xử lý khác chưa?
bugmenot123

1
Không, đây là kiểu của lớp, tôi không thể sử dụng bất kỳ plugin nào trong thuộc tính lớp. Tôi cố gắng giải quyết vấn đề của mình bằng các chức năng tích hợp sẵn của qgis
Jane

2
So sánh thuộc tính nghe có vẻ tốt nhưng so sánh OO hơi yếu, $geometrythay vào đó là biến (const), bất kể OO hay không.
Matthias Kuhn

15

$geometrytrả về hình dạng của tính năng hiện tại như tronggeom_to_wkt($geometry)

geometrytrả về hình dạng của một tính năng cụ thể như tronggeom_to_wkt(geometry(get_feature('my_layer', 'my_feature', feature_id)))

Ví dụ, bạn sẽ sử dụng trường hợp thứ hai nếu bạn muốn xử lý tính năng hiện tại đối với một tính năng cụ thể:

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.