Tìm kiếm hướng dẫn sử dụng máy phát hình học QGIS?


8

Tôi muốn tạo một số bản đồ luồng giống như bản đồ được hiển thị trong bài đăng của Underdark: https://anitagraser.com/2016/12/18/details-of-good-flow-maps/

Tôi có một tập hợp các điểm vị trí, giả sử là 50 và tôi muốn tạo một bản đồ " tất cả các điểm thành một " cho mỗi điểm, do đó, 50 bản đồ trong ví dụ này. Và một bộ bản đồ " một điểm cho tất cả " cho mỗi điểm, do đó, thêm 50 bản đồ.

Thay vì tạo tất cả các lớp dòng bổ sung, tôi muốn thực hiện điều này bằng cách sử dụng kết hợp các biểu tượng trình tạo Atlas và Geometry trong QGIS.

Tuy nhiên, tôi không tìm thấy nhiều ví dụ để xem làm thế nào hoặc nếu tôi có thể làm điều đó.

Vì vậy, có một trang web nơi tôi có thể tìm thấy một tập hợp đầy đủ các ví dụ về trình tạo hình học QGIS không?

Đây là một clip về đầu ra được lọc chỉ hiển thị 10 dòng trên cùng từ mỗi điểm. Tôi đã tạo tất cả các dòng từ một csv với tọa độ điểm bằng WKT. Mũi tên và ký hiệu điểm được tạo bằng bộ tạo hình học. Phần còn lại được kiểm soát bởi Atlas.

nhập mô tả hình ảnh ở đây

Câu trả lời:


8

Không có trang web như vậy cho đến nay. Tính năng này khá mới và các ví dụ sử dụng chỉ bắt đầu xuất hiện ngay bây giờ.

Đối với trường hợp sử dụng cụ thể của bạn, tôi vẫn khuyên bạn nên tạo một lớp dòng với tất cả các kết nối. Sau đó, bạn có thể lọc lớp này bằng Atlas và không cần phải lo lắng về bất cứ điều gì khác.


6

Điều này có thể sử dụng một 'trình tạo hình học' khác với trình tạo mà bạn dự định ban đầu tôi nghi ngờ, Bạn có thể tránh phải tạo tất cả các lớp đường kết nối bằng cách sử dụng một lớp ảo:

Một số điểm:

điểm lấy mẫu

Thêm một lớp ảo bằng cách sử dụng SQL sau - THAM GIA khớp mọi điểm với nhau và hình dạng đường được tạo bằng hàm Spatialite MakeLine :

SELECT s.id 'ID1', c.id 'ID2' , MakeLine(s.geometry,c.geometry) 'geometry'
  FROM SamplePoints AS s JOIN SamplePoints AS c 
  WHERE s.id <> c.id

Kết quả:

Các điểm có đường nối

Bảng ảo này sau đó có thể được lọc động bằng chức năng Atlas.

Tự động tạo các đường cong sẽ khó hơn, nhưng vẫn có thể. Làm cong chúng theo cách phù hợp về mặt bản đồ (xem xét phân phối của các dòng khác) có lẽ vượt quá những gì có thể đạt được với các lớp ảo.

Cập nhật:

Với một chút mày mò và nhiều tham chiếu đến danh sách chức năng Spatialite, tôi đã tạo ra các đường cong:

Các điểm có đường nối cong

SQL lớp ảo cho điều này là dưới đây. Lưu ý rằng tất cả các hoán vị được hiển thị và đảo ngược thứ tự của vị trí bắt đầu và kết thúc sẽ tạo ra đường cong bổ sung.

SELECT s.id 'ID1', c.id 'ID2' , 
MakeArc(
    X(Project(MakePoint((X(s.geometry)+X(c.geometry))/2,(Y(s.geometry)+Y(c.geometry))/2),distance(s.geometry,c.geometry),Azimuth(s.geometry,c.geometry) - PI()/2)),
    Y(Project(MakePoint((X(s.geometry)+X(c.geometry))/2,(Y(s.geometry)+Y(c.geometry))/2),distance(s.geometry,c.geometry),Azimuth(s.geometry,c.geometry) - PI()/2)),
    distance(s.geometry,c.geometry) * 1.1180339887,
    90 - azimuth(Project(MakePoint((X(s.geometry)+X(c.geometry))/2,(Y(s.geometry)+Y(c.geometry))/2),distance(s.geometry,c.geometry),Azimuth(s.geometry,c.geometry) - PI()/2),s.geometry) * (180/PI()),
    90 - azimuth(Project(MakePoint((X(s.geometry)+X(c.geometry))/2,(Y(s.geometry)+Y(c.geometry))/2),distance(s.geometry,c.geometry),Azimuth(s.geometry,c.geometry) - PI()/2),c.geometry) * (180/PI()),
    27700,
    2) 'geom' /*line:27700*/
  FROM SamplePoints AS s JOIN SamplePoints AS c 
  WHERE s.id <> c.id
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.