Xoay bản đồ tự động trong trình soạn thảo bản đồ QGIS


10

Có một điều là tôi tự hỏi làm cho nó có thể tự động tính toán xoay vòng bản đồ trong trình soạn thảo bản đồ. Tôi có nhiều bản đồ trong một tệp với các tham số chiếu riêng và tôi muốn xác định xoay bản đồ trong trình soạn thảo bản đồ dựa trên công thức chiếu (hoặc smth khác?)

ví dụ: vị trí một bản đồ cụ thể trong dự án:

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

Hình chiếu là

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

Trong ranh giới nhà soạn nhạc bản đồ trông giống như

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

Và với góc xoay được chọn cho bản đồ với các tham số chiếu của chúng:

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

Góc xoay của bản đồ là khác nhau đối với mỗi bản đồ tùy thuộc vào vị trí và thông số chiếu của nó.

Có thể tự động hóa quy trình này và tự động tính toán góc xoay bản đồ, vì không tìm thấy giá trị này theo cách thủ công mỗi lần (tôi muốn tạo trình soạn thảo chung cho tất cả các bản đồ thông qua menu tạo bản đồ)?


1
Bạn có muốn xoay tính năng sao cho song song với các cạnh của khung bản đồ không? Bạn có thể tính góc phương vị của một trong các mặt của đối tượng địa lý và sử dụng góc đó để xoay nó không? Nếu đó là một dòng, một cái gì đó như rotation = độ (atan (abs ((y1-y2) / (x1-x2)))) sẽ cung cấp cho bạn một góc theo độ. Sau đó, 90 - xoay sẽ căn chỉnh nó với khung bản đồ.
mixbredie

2
Bạn đang sử dụng một tập bản đồ? Nếu bạn tạo lớp phủ bằng công cụ "Hộp giới hạn tối thiểu định hướng", thì lớp đó sẽ bao gồm một thuộc tính xoay có thể được liên kết với xoay vòng mục bản đồ bằng các thuộc tính được xác định dữ liệu.
ndawson

@mixedbredie, Có, tôi muốn xoay bản đồ của mình để ranh giới bản đồ sẽ song song với khung bản đồ trong khung vẽ bản đồ. Tôi đã cố gắng tính phương vị, nhưng vấn đề là lớp của tôi với các bản đồ là đa giác và không có gì để nói rằng điểm đầu tiên là đỉnh trên cùng bên trái hoặc đỉnh nhất định khác (dưới cùng bên phải, v.v.). Vì vậy, góc gần như mọi lúc không thỏa mãn
Jane

Giải pháp được đề xuất bởi @ndawson có tác dụng đối xử. Sử dụng lớp hộp giới hạn mới làm lớp bảo hiểm ẩn và mọi thứ sẽ được căn chỉnh.
mixbredie

1
Mở Hộp công cụ xử lý (Ctrl + Alt + T) và tìm kiếm "định hướng" - bạn thấy công cụ trong thuật toán địa lý của QGIS> Các công cụ chung của Vector.
mixbredie

Câu trả lời:


3

Dưới đây là một giải pháp được tìm thấy bởi @ndawson trong các bình luận của câu hỏi. Xin vui lòng bình luận và nâng cao câu trả lời này.

Chạy từ hộp công cụ xử lý, công cụ hộp giới hạn tối thiểu được định hướng onthe lưới bao thư bản đồ bạn đã sử dụng.

Công cụ hộp định hướng

Nó sẽ tạo ra một lớp khá giống với lớp ban đầu của bạn. Bạn sẽ tìm thấy trong bảng thuộc tính một trường ANGLE

Các trường OBB

Bây giờ bạn có thể sử dụng trường ANGLE này trong trình soạn thảo để điền vào trường được xác định dữ liệu để xoay vòng:

Dữ liệu xác định góc

Vấn đề dường như là góc không phải lúc nào cũng dễ sử dụng vì nó phụ thuộc vào cách tạo đa giác ban đầu. Tôi đã làm một vài thử nghiệm và nó phụ thuộc vào cách bạn đã rút ra các đa giác nguồn của mình. Bạn có thể phải điều chỉnh các giá trị thuộc tính của trường ANGLe tương ứng:

(màu đỏ là đa giác gốc, màu đen là đa giác công cụ OMBB). Tôi đã số hóa cho các đa giác tương tự mẫu là hai cách khác nhau (đi sang phải hoặc trái)

Ví dụ OMBB

Để lấy lại giá trị góc cho lớp ban đầu của bạn, bạn có thể sử dụng thao tác nối vị trí không gian.


Cảm ơn bạn rất nhiều! Tôi đã chăm chú trả lời chi tiết của bạn! Nhưng vấn đề dường như phức tạp hơn. Tôi có một lớp với tất cả các bản đồ và các hình chiếu của chúng trong bảng thuộc tính cho mọi bản đồ. Lớp ban đầu với bộ bản đồ trong WGS84, nhưng khi chuẩn bị bản đồ, tôi đặt phép chiếu trong khung bản đồ, được lấy từ bảng thuộc tính (khác với mọi bản đồ) và tôi cần một giá trị xoay bản đồ trong DỰ ÁN NÀY. Vì vậy, tôi phải lưu lại mọi bản đồ trong hình chiếu của riêng họ và sau đó chạy OMBB cho đa giác. Tôi đã thử nghiệm cho một số bản đồ, nhưng giá trị góc xoay không chính xác khác với tính toán qua OMBB
Jane

Sẽ thật tuyệt khi tính giá trị góc xoay trong trình soạn thảo bản đồ, dựa trên công thức chiếu trong bảng thuộc tính
Jane

Không dễ ! Tôi không thấy cách bạn có thể làm điều đó một cách đơn giản, đặc biệt là cho góc xoay. Có một cách để chiếu dữ liệu với chức năng "biến đổi", nhưng tôi nghi ngờ nó sẽ hoạt động cho bất cứ thứ gì khác sau đó tọa độ. (Returns hình học chuyển đổi từ một nguồn CRS đến một CRS điểm đến Cú pháp: transform (Geom, source_auth_id, dest_auth_id) - Ví dụ:. Geom_to_wkt (transform ($ hình học, 'EPSG: 2154', 'EPSG: 4326'))
gisnside
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.