Tham gia các thuộc tính của lớp điểm và đường theo vị trí (khoảng cách gần nhất) trong QGIS


13

Vấn đề của tôi là như sau: tôi có một dòng shp (lớp đích) và một điểm shp (lớp nối). lớp thứ hai (lớp điểm) giữ một thuộc tính mà tôi muốn tham gia với một lớp dòng dựa trên khoảng cách gần nhất với dòng. Điểm và đường không giao nhau

Tôi có thể làm điều này với ArcGIS và tham gia không gian (tùy chọn đối sánh: gần nhất), nhưng tôi không biết làm thế nào tôi có thể đạt được điều này trong QGIS.


3
Có một công cụ để thực hiện Tham gia theo vị trí nhưng nó không có tùy chọn "gần nhất". Tôi không biết có cách giải quyết nào không. Nói chung, vui lòng đánh giá để hỗ trợ phát triển các tùy chọn / công cụ yêu thích còn thiếu của bạn, đây cũng là cách mà người dùng có thể giúp phần mềm này phát triển.
Giovanni Manghi

Câu trả lời:


8

Tôi không nghĩ có chức năng QGIS "cốt lõi" cho việc này. Tuy nhiên, hãy cài đặt plugin MMQGIS và sử dụng công cụ 'khoảng cách trung tâm'. Chọn các điểm của bạn làm lớp "Điểm nguồn" và các dòng của bạn là "Lớp trung tâm đích" và đặt "Loại hình dạng đầu ra" thành "Đường tới Hub". Điều này sẽ cung cấp cho bạn một shapefile của các dòng (có độ dài) tham gia các tính năng gần nhất. Thuận tiện, nó cũng thêm ID của tính năng gần nhất vào bảng thuộc tính.

Chỉnh sửa / Nhận xét: Cách tiếp cận này hoạt động tốt nếu có ít điểm hơn các dòng hoặc tình huống một-một-một-điểm. Có nhiều điểm hơn dòng làm phức tạp mọi thứ. Công cụ 'Khoảng cách Hub' thêm ID của tính năng đường vào bảng thuộc tính điểm dưới dạng 'HubName' cùng với khoảng cách giữa điểm và tâm của đường là 'HubDist'. Nếu có nhiều điểm hơn các dòng, công việc bổ sung được yêu cầu để xác định trong mỗi tập hợp con của các điểm (nhiều bản ghi được liên kết với từng trung tâm dòng), trong đó các điểm gần nhất với mỗi dòng và / hoặc là một với tập hợp mong muốn thuộc tính để tham gia vào dòng.


điều này nên được đánh dấu là câu trả lời, tùy thuộc vào chỉnh sửa nhỏ của "dòng" v "điểm"
Willy

1
"Khoảng cách trung tâm" không phải là công cụ phù hợp nếu "khoảng cách gần nhất với đường" là tiêu chí. Mã mmqgis cho thấy khoảng cách trung tâm sử dụng xấp xỉ hình học "hub". Các tính toán khoảng cách (mmqgis_distance) lấy hai điểm làm tham số. Đây là đoạn mã thực hiện xấp xỉ hình học trung tâm trong mmqgis_l Library.py: "Feature.geometry (). TringBox (). Center ()". Điều này có nghĩa là trung tâm của khung giới hạn của hình học được sử dụng thay vì hình học thực. Vì vậy, nếu "khoảng cách gần nhất với dòng" là tiêu chí, GRASS v.distance hoặc plugin NNJoin phù hợp hơn.
Håvard Tveite

5

Hàm GRASS v.distance có thể được sử dụng cho việc này. Trong QGIS, bạn có thể truy cập chức năng thông qua plugin GRASS ( phiên bản Xử lý hiện không hoạt động). Các NNJoin Plugin QGIS có thể là một lựa chọn đơn giản hơn.


3

Plugin NNJoin chưa bao giờ làm tôi thất vọng và hoạt động tốt với các bộ dữ liệu lớn .

Plugin> Cài đặt: NNJoin> NNJoin> chọn lớp đầu vào và lớp tham gia> Sau đó bấm tham gia.

Kiểm tra kết quả từ lớp đầu ra mới với bảng thuộc tính. Cảnh báo: đảm bảo cả hai lớp của bạn đang sử dụng cùng một phép chiếu không gian nếu không kết quả của bạn sẽ trống.


2

Vào năm 2019, điều này có thể khả thi với công cụ Zanzibar của QGIS 3 'Tham gia các thuộc tính gần nhất'. Công cụ này cho phép bạn tìm tính năng gần nhất và tham gia các thuộc tính được chọn. Cũng có thể thực hiện tham gia một-nhiều, nếu bạn chỉ định khoảng cách tối đa và hàng xóm gần nhất tối đa.

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.