Một số câu trả lời được cung cấp ở đây không còn là tùy chọn cho QGIS 3 và / hoặc chỉ cho phép các phép biến đổi tuyến tính của tệp vectơ được tham chiếu địa lý. Điều này có thể trả lời câu hỏi của OP, nhưng những người khác xem bài đăng này có thể muốn các tùy chọn chuyển đổi khác cho các tệp vectơ hội nghị địa lý.
Các vấn đề với một số giải pháp cho các tệp vectơ hội nghị địa lý:
Plugin qssAffine chỉ cho phép chuyển đổi tuyến tính. Điều này có nghĩa là nó có thể chia tỷ lệ, xoay và di chuyển tệp vectơ, nhưng nó không thể uốn cong hoặc làm cong tệp vectơ. Georeferencer cho các tệp raster cung cấp nhiều tùy chọn hơn và cho phép thực hiện nhiều biến đổi khác nhau, bao gồm đa thức bậc hai và spline tấm mỏng. Ngoài ra, có vẻ như plugin qssAffine vẫn không khả dụng trong QGIS 3.
Mô-đun GRASS v.transform tương tự như plugin qssAffine và chỉ cho phép chuyển đổi tuyến tính.
Plugin Vector Bender có vẻ như là một tùy chọn tốt, nhưng nó chưa được chuyển hoàn toàn sang QGIS 3, vì vậy hiện tại không phải là một tùy chọn. Nó không giống như nó đang được duy trì nữa.
Sử dụng ogr2ogr, như được đề xuất trong bài đăng của HeikkiVesanto, là một lựa chọn tốt. Nó cho phép một người sử dụng GCP (Điểm kiểm soát mặt đất) và chỉ định loại chuyển đổi bạn muốn. Tôi không thể tìm thấy hướng dẫn ở bất cứ đâu về cách thực hiện việc này, vì vậy tôi đã bao gồm một số hướng dẫn bên dưới:
Tạo một tập hợp các cặp GCP, với một điểm là vị trí ban đầu trong tệp vectơ không tham chiếu và điểm khác là vị trí mong muốn trong không gian làm việc được tham chiếu địa lý của bạn.
Có nhiều cách khác nhau để tạo GCP. Tôi đã sử dụng plugin Georeferencer GDAL trong QGIS. Điều này có sẵn trong menu thả xuống Raster, sau khi được cài đặt bằng trình quản lý Plugin. Nó chỉ hoạt động trên các tệp raster, vì vậy trước tiên bạn phải chuyển đổi tệp vectơ thành tệp raster. Điều này có thể với "Hộp công cụ xử lý: GDAL: Chuyển đổi vectơ: Rasterize (vectơ thành raster)". Đặt độ phân giải thành số vẫn cho phép bạn xem các tính năng của tệp vectơ.
Georeferencer có giao diện đẹp, cho phép bạn thêm nhiều điểm GCP. Bạn cũng có thể thử nghiệm các biến đổi khác nhau và xem cái nào hoạt động tốt nhất. Và bạn có thể xem liệu có bất kỳ điểm GCP nào của bạn có khả năng bị lỗi hay không, bằng cách xem phần dư của chúng. Khi bạn đã thêm tất cả các điểm GCP của mình và kiểm tra xem bạn có thích đầu ra không, bạn có thể xuất tệp GCP từ Georeferencer để sử dụng cho hội thảo địa lý tệp vectơ gốc.
Tệp GCP cần được thay đổi theo định dạng sau. Bạn có thể thêm bao nhiêu điểm GCP tùy thích, mỗi điểm được tiến hành bằng -gcp và cách nhau bởi khoảng trắng. Tôi đã chạy nó với hơn 800 điểm GCP và nó hoạt động rất tốt.
-gcp <ungeoref_x1> <ungeoref_y1> <georef_x1> <georef_y1> -gcp <ungeoref_x2> <ungeoref_y2> <georef_x2> <georef_y2>
Có nhiều cách mà người ta có thể thay đổi các điểm GCP thành định dạng phù hợp. Tôi đã nhập chúng vào Excel dưới dạng tệp csv và tạo một cột để xuất định dạng đúng cho từng điểm. Sau đó, tôi dán cột đó vào TextEdit và thay thế dòng kết thúc bằng dấu cách.
Tệp vectơ mà bạn muốn tham chiếu địa lý nên được nhập vào không gian làm việc của bạn bằng cách sử dụng cùng SRS mà bạn muốn cho tệp tham chiếu địa lý cuối cùng, phải là SRS giống như không gian làm việc của bạn. Nó có thể là một chặng đường dài từ nơi cần đến, nếu ban đầu nó sử dụng một SRS khác, nhưng phép biến đổi sẽ di chuyển nó đến đúng vị trí.
Truy cập ogr2ogr thông qua "Hộp công cụ xử lý: GDAL: Chuyển đổi vectơ: Chuyển đổi định dạng". Điều này cho phép bạn chọn tệp vectơ bạn muốn tham chiếu địa lý và tệp đầu ra của bạn. Trong trường "Tùy chọn tạo bổ sung", thêm lệnh chỉ định loại chuyển đổi bạn muốn và sau đó là dòng có tất cả các điểm GCP của bạn.
Các lệnh cho các loại chuyển đổi khác nhau bao gồm:
- "-order 1" cho tuyến tính
- "-order 2" cho đa thức bậc hai
- "-order 3" cho đa thức bậc ba
- "-tps" cho Spline Tấm mỏng.
Ví dụ: mã được thêm vào trường "Tùy chọn tạo bổ sung" có thể trông như sau:
-order 2 -gcp <ungeoref_x1> <ungeoref_y1> <georef_x1> <georef_y1> -gcp <ungeoref_x2> <ungeoref_y2> <georef_x2> <georef_y2>