คำตอบหลายข้อที่ให้ไว้ในที่นี้ไม่ใช่ตัวเลือกสำหรับ QGIS 3 อีกต่อไปและ / หรืออนุญาตให้ทำการแปลงเชิงเส้นของไฟล์เวคเตอร์ที่อ้างอิงทางภูมิศาสตร์เท่านั้น นี่อาจตอบคำถามของ OP แต่คนอื่น ๆ ที่ดูโพสต์นี้อาจต้องการตัวเลือกการแปลงอื่นสำหรับไฟล์เวคเตอร์อ้างอิง
ปัญหาเกี่ยวกับวิธีแก้ไขปัญหาบางอย่างสำหรับไฟล์เวกเตอร์การอ้างอิงทางภูมิศาสตร์:
ปลั๊กอิน qgsAffine อนุญาตให้ทำการแปลงเชิงเส้นเท่านั้น ซึ่งหมายความว่าสามารถปรับขนาดหมุนและย้ายไฟล์เวกเตอร์ได้ แต่ไม่สามารถโค้งงอหรือบิดเวกเตอร์ไฟล์ได้ Georeferencer สำหรับไฟล์แรสเตอร์มีตัวเลือกเพิ่มเติมและอนุญาตให้มีการเปลี่ยนแปลงที่หลากหลายรวมถึงพหุนามลำดับที่สองและแผ่นบางแบบโค้ง นอกจากนี้ยังไม่ปรากฏว่าปลั๊กอิน qgsAffine ยังคงมีอยู่ใน QGIS 3
โมดูล GRASS v.transform คล้ายกับปลั๊กอิน qgsAffine และอนุญาตสำหรับการแปลงเชิงเส้นเท่านั้น
ปลั๊กอิน Vector Bender ดูเหมือนจะเป็นตัวเลือกที่ดี แต่ยังไม่ได้รับการย้ายไปยัง QGIS 3 อย่างสมบูรณ์ดังนั้นจึงยังไม่มีตัวเลือกในขณะนี้ ดูเหมือนว่ามันจะไม่ได้รับการบำรุงรักษาอีกต่อไป
ใช้ ogr2ogr ตามที่แนะนำในโพสต์ของ HeikkiVesanto เป็นตัวเลือกที่ดี อนุญาตให้ใช้ GCPs (จุดควบคุมภาคพื้นดิน) และระบุประเภทการแปลงที่คุณต้องการ ฉันไม่พบคำแนะนำเกี่ยวกับวิธีการทำเช่นนี้ดังนั้นฉันได้รวมคำแนะนำไว้ด้านล่าง:
สร้างชุดคู่ GCP โดยมีจุดหนึ่งเป็นตำแหน่งดั้งเดิมในไฟล์เวกเตอร์ที่ไม่ได้รับการยืนยันและอีกจุดหนึ่งเป็นตำแหน่งที่ต้องการในพื้นที่ทำงานที่อ้างอิงทางภูมิศาสตร์ของคุณ
มีหลายวิธีในการสร้าง GCP ฉันใช้ปลั๊กอิน Georeferencer GDAL ใน QGIS สามารถใช้งานได้ภายใต้เมนูแบบเลื่อนลง Raster หลังจากติดตั้งโดยใช้โปรแกรมจัดการปลั๊กอิน ใช้งานได้กับไฟล์แรสเตอร์เท่านั้นดังนั้นคุณต้องแปลงไฟล์เวคเตอร์เป็นไฟล์แรสเตอร์ก่อน สิ่งนี้เป็นไปได้ด้วย "กล่องเครื่องมือการประมวลผล: GDAL: การแปลงแบบเวกเตอร์: Rasterize (เวกเตอร์เป็นเชิงภาพ)" ตั้งค่าความละเอียดเป็นตัวเลขที่ยังคงให้คุณเห็นคุณสมบัติของไฟล์เวคเตอร์
Georeferencer มีอินเทอร์เฟซที่ดีซึ่งทำให้คุณสามารถเพิ่มคะแนน GCP ได้มากมาย คุณสามารถทดสอบการเปลี่ยนแปลงต่าง ๆ และดูว่าแบบไหนดีที่สุด และคุณสามารถดูว่าคะแนน GCP ใด ๆ ของคุณมีแนวโน้มที่จะผิดพลาดหรือไม่โดยดูจากส่วนที่เหลือ เมื่อคุณเพิ่มคะแนน GCP ทั้งหมดของคุณแล้วและตรวจสอบว่าคุณชอบผลลัพธ์คุณสามารถส่งออกไฟล์ GCP จาก Georeferencer เพื่อใช้สำหรับการอ้างอิงทางภูมิศาสตร์ไฟล์เวกเตอร์ต้นฉบับ
ไฟล์ GCP จะต้องมีการเปลี่ยนแปลงให้อยู่ในรูปแบบต่อไปนี้ คุณสามารถเพิ่มคะแนน GCP ได้มากเท่าที่คุณต้องการแต่ละจุดจะดำเนินการด้วย -gcp และคั่นด้วยช่องว่าง ฉันทำสิ่งนี้ด้วยคะแนน 800+ GCP และใช้งานได้ดี
-gcp <ungeoref_x1> <ungeoref_y1> <georef_x1> <georef_y1> -gcp <ungeoref_x2> <ungeoref_y2> <georef_x2> <georef_y2>
มีหลายวิธีที่สามารถเปลี่ยนคะแนน GCP เป็นรูปแบบที่ถูกต้องได้ ฉันนำเข้าพวกเขาไปยัง Excel เป็นไฟล์ csv และสร้างคอลัมน์เพื่อส่งออกรูปแบบที่เหมาะสมสำหรับแต่ละจุด จากนั้นฉันวางคอลัมน์นั้นลงใน TextEdit และแทนที่บรรทัดที่ลงท้ายด้วยช่องว่าง
ไฟล์เวกเตอร์ที่คุณต้องการระบุตำแหน่งควรนำเข้าสู่เวิร์กสเปซของคุณโดยใช้ SRS เดียวกับที่คุณต้องการสำหรับไฟล์อ้างอิงทางภูมิศาสตร์สุดท้ายซึ่งควรเป็น SRS เดียวกับเวิร์กสเปซของคุณ อาจเป็นวิธีที่ไกลจากจุดที่ควรใช้หาก แต่เดิมใช้ SRS อื่น แต่การแปลงจะย้ายไปยังตำแหน่งที่ถูกต้อง
เข้าถึง ogr2ogr ผ่าน "กล่องเครื่องมือประมวลผล: GDAL: การแปลงเวกเตอร์: แปลงรูปแบบ" สิ่งนี้อนุญาตให้คุณเลือกไฟล์เวคเตอร์ที่คุณต้องการระบุตำแหน่งและไฟล์เอาต์พุตของคุณ ในฟิลด์ "ตัวเลือกการสร้างเพิ่มเติม" ให้เพิ่มคำสั่งเพื่อระบุประเภทการแปลงที่คุณต้องการจากนั้นให้สอดคล้องกับคะแนน GCP ทั้งหมดของคุณ
คำสั่งสำหรับการแปลงรูปแบบต่าง ๆ ได้แก่ :
- "- สั่ง 1" สำหรับเชิงเส้น
- "-order 2" สำหรับพหุนามลำดับที่สอง
- "-order 3" สำหรับพหุนามลำดับที่สาม
- "-tps" สำหรับ Thin Plate Spline
ตัวอย่างเช่นรหัสที่เพิ่มลงในฟิลด์ "ตัวเลือกการสร้างเพิ่มเติม" อาจมีลักษณะดังนี้:
-order 2 -gcp <ungeoref_x1> <ungeoref_y1> <georef_x1> <georef_y1> -gcp <ungeoref_x2> <ungeoref_y2> <georef_x2> <georef_y2>