Hiển thị các dòng được tạo ra ngoài phạm vi bản đồ bằng cách sử dụng QGIS?


12

Tôi đã vẽ sơ đồ luồng OD bằng trình tạo hình học QGIS, sử dụng biểu thức sau:

make_line( centroid( $geometry ),
centroid( geometry( get_feature( 'Layer2', 'Attribute1', attribute(
           $currentfeature, 'Attribute2') ) ) ) )

Tôi đã làm mọi thứ tốt đẹp, xác định độ rộng của các dòng của tôi theo các thuộc tính.

Nhưng khi tôi phóng to đến "trung tâm", các đường được liên kết đến các địa điểm bên ngoài khung vẽ bản đồ sẽ không hiển thị. Tôi đoán đó là vì các tính năng không được phép xuất hiện trên bản đồ.

Tôi đã cố gắng bỏ chọn tùy chọn "Clip Feature to canvas canvas" trong menu nâng cao, cả trong "Trình tạo hình học" và ở cấp độ "Line", nhưng nó vẫn không xuất hiện.

Khi phóng to trên trung tâm

Khi không được chiếu

Tôi muốn có tất cả các dòng của tôi xuất hiện, ngay cả khi phóng to trên trung tâm.


Điều này sẽ không hữu ích ... nhưng tôi gặp vấn đề tương tự với phương pháp lập bản đồ dòng chảy của Underdark. Nó phải là một cái gì đó về cách hiển thị hình học dày đặc ... chỉ đề xuất là chơi với chiều rộng thuộc tính cho bản đồ cấp địa phương ... làm cho chiều rộng nhỏ hơn?
Andrew Tice

Có thể bạn có thể tải lên dữ liệu của mình (shp ...) để có thể sao chép các bước của mình và cố gắng nhận được câu trả lời.
César Arquero

1
Shapefile đến từ đây: IGN và bảng tham gia từ INSEE
mamouthautapis

Có thể phân đoạn dòng có thể là một hack để làm cho nó xuất hiện trên bản đồ, nếu các dòng chỉ được hiển thị ib cả hai đầu gần với phạm vi bản đồ. Grass-tool 'v.split.length' có thể thực hiện công việc.
Julian

1
Đây có phải là vấn đề giống như tôi đã gặp phải không (nếu nó đưa ra một cách đơn giản để hiểu vấn đề này - nếu không, hãy bỏ qua cho tôi): Tôi muốn hiển thị một tập dữ liệu điểm với toàn bộ các điểm được tạo đã dịch chuyển 300km về phía đông và 600km phía bắc so với các điểm thực tế. Nó hoạt động - nhưng chỉ khi thu nhỏ để các điểm ban đầu nằm trong khung vẽ bản đồ. Ngay khi bạn phóng to tập hợp các điểm được tạo (di chuyển các vị trí điểm thực tế bên ngoài khung vẽ), các điểm được tạo sẽ biến mất. (QGIS 2.14)
Rostranimin

Câu trả lời:


2

Vấn đề ở đây là không có dữ liệu thực tế nói rằng "có một dòng ở đây". Biểu thức của bạn là một phần của Kiểu dáng lớp và chỉ gặp phải trong quá trình kết xuất khi hai điểm áp dụng cũng được hiển thị.

Hãy thử sử dụng công cụ Khoảng cách đến trung tâm gần nhất , được tìm thấy trong hộp công cụ xử lý bên dưới các công cụ phân tích Vector. Tôi lưu ý rằng bạn đang chọn các đa giác cụ thể cho nan hoa của mình và tạo kiểu cho các đường theo các thuộc tính khác. Điều này là có thể, nhưng bạn sẽ cần phải làm một vài điều để chuẩn bị cho nó. Rất may, công cụ tự động sử dụng centroid khi đầu vào đa giác được chọn.

  1. Công cụ lựa chọn vector > Trích xuất theo thuộc tính
    • Lớp đầu vào: 'LAYER_1'
    • Thuộc tính lựa chọn: 'ATTRIBUTE_1'
    • Toán tử: =
    • Giá trị: 'giá trị đề cập đến đa giác trung tâm'
    • Trích xuất (thuộc tính): 'HUB'

  2. Công cụ lựa chọn vector > Trích xuất theo thuộc tính
    • Lớp đầu vào: 'LAYER_1'
    • Thuộc tính lựa chọn: 'ATTRIBUTE_2'
    • Toán tử: được chọn khi cần thiết
    • Giá trị: 'giá trị đề cập đến đa giác đã nói'
    • Trích xuất (thuộc tính): 'SPOKES'

  3. Công cụ phân tích vector > Khoảng cách đến trung tâm gần nhất
    • Lớp điểm nguồn: 'SPOKES'
    • Lớp trung tâm đích: 'HUB'
    • Thuộc tính tên lớp trung tâm: tạo trường "Tên Hub" trong đầu ra dựa trên thuộc tính được chọn, trong trường hợp nhiều hub được chỉ định trong lớp đầu vào
    • Kiểu hình đầu ra: Line to hub
    • Đơn vị đo lường: Máy đo
    • Khoảng cách trung tâm: 'OUTPUT_LAYER_NAME'

Đầu ra kết quả giữ lại tất cả các thuộc tính của đầu vào lớp 'SPOKES', do đó các thuộc tính cần thiết cho kiểu dáng đường vẫn sẽ có mặt. Là lớp vectơ của riêng nó, các đường sẽ vẫn hiển thị ở tất cả các mức thu phóng, bất kể khả năng hiển thị của điểm cuối.

Nếu bạn cảm thấy thoải mái với Trình tạo mô hình đồ họa, bạn thậm chí có thể xây dựng các bước này thành một quy trình duy nhất để không làm lộn xộn không gian làm việc của bạn với các lớp không cần thiết.


3

Tìm thấy cách giải quyết sau: Sử dụng một lớp ảo bổ sung thay vì trình tạo hình học để hiển thị các dòng.

Định nghĩa của lớp ảo:

select m.FID, make_line(.....) as geometry from my_layer m

(hình học ban đầu có thể được tham chiếu bằng cách sử dụng m.geometry)

Để đảm bảo lớp ảo được làm mới khi my_layer được chỉnh sửa, hãy chuyển đến thuộc tính lớp | phụ thuộc và đảm bảo my_layer được kiểm tra (mặc định có màu xám).

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.