ฉันมีเลเยอร์เวกเตอร์ตั้งอยู่รอบ ๆ พูด (100, 100) และฉันต้องการย้ายพวกมันไปยังพิกัดใหม่เช่น (1,000, 1,000)
ฉันจะใช้ QGIS ได้อย่างไร
ฉันมีเลเยอร์เวกเตอร์ตั้งอยู่รอบ ๆ พูด (100, 100) และฉันต้องการย้ายพวกมันไปยังพิกัดใหม่เช่น (1,000, 1,000)
ฉันจะใช้ QGIS ได้อย่างไร
คำตอบ:
แน่นอนว่าสามารถ เช่นเดียวกับ alexgleith กล่าวว่าคุณสามารถใช้ปลั๊กอิน qgsaffine (จากตัวติดตั้งปลั๊กอิน)
ด้านบนของบรรทัดแรกอยู่ที่ 0,0 และด้านบนของบรรทัดที่สองคือ 5,5 เมื่อถึงจุดเริ่มต้นคะแนนจะอยู่ที่ 0 บน X
การใช้ปลั๊กอิน Affine เราสามารถเพิ่ม 5 ลงในพิกัด X ทั้งหมดได้:
หลังจากนั้นพวกเขาทั้งหมดในบรรทัดที่สองที่ X 5, Y 5:
หากคุณต้องการย้ายด้วยตนเองเพียงแค่เริ่มแก้ไขเลือกคุณสมบัติที่คุณต้องการย้ายจากนั้นเลือกเครื่องมือย้ายแล้วเลื่อน
ในการเคลื่อนย้ายพวกมันด้วย x, y offset คุณอาจสามารถใช้ python plugin "qgsaffine"
ฉันไม่ทันสมัยกับการใช้คอนโซล python แต่อาจมีวิธีแก้ไขด้วยเช่นกัน
ปลั๊กอินในคำตอบที่ยอมรับไม่สามารถใช้ได้อีกต่อไป การแปลง Affine นั้นมีให้ใช้และมีประโยชน์มาก
ด้วยปลั๊กอินนี้คุณสามารถสร้างสูตร ในภาพหน้าจอฉันเลื่อนเซลล์ทั้งหมดด้วย 17.396 (เมตร) ไปทางทิศเหนือ
x'
และy'
วิธีการได้มาx
และy
จากชั้นเวกเตอร์เดิม คุณต้องอ่านแบบนี้: derived x= (1.0 * original x) + (0.0 * original y) + 0.0
หมายความว่าไม่มีการเปลี่ยนแปลงในทิศทาง x ดังนั้น 1.0 คูณ x ฉันต้องการเลื่อนเซลล์ทั้งหมดขึ้น (ไปทางทิศเหนือ) ประมาณ 17.396 เมตร ดังนั้นฉันเพิ่ม 17.396 ไปยัง (1 * y) เท่านั้น เมื่อคุณไม่ต้องการเปลี่ยนแปลงเลยคุณเพียงแค่ใช้: x' = (1 * x) + (0 * y) + 0
และy' = (0 * x) + (1 * y) + 0
ฉันพบปลั๊กอิน"การแก้ไขจุดสุดยอดเชิงตัวเลข"มีประโยชน์มากสำหรับการระบุพิกัดใหม่สำหรับจุด
บนเลเยอร์ที่แก้ไขได้ให้ใช้เครื่องมือเพื่อเลือกจุดจากนั้นคุณจะได้รับแจ้งให้ป้อนพิกัดใหม่
ใน QGIS 3.x ไม่จำเป็นต้องใช้ปลั๊กอินเพื่อย้ายรูปร่างเวกเตอร์อีกต่อไปเนื่องจากมีรูทีนที่เรียกว่า "แปล" ใน Toolbox -> Vector Geometry คุณเพียงแค่ใส่ระยะทางออฟเซ็ตสำหรับแกน x และ y และเรียกใช้หรือ - ตามที่กล่าวไว้ข้างต้นหากคุณต้องการวางตำแหน่งด้วยตนเองเริ่มแก้ไขเลเยอร์เลือกเอนทิตีทั้งหมดแล้วย้ายพวกมันด้วยเครื่องมือ "ย้ายคุณสมบัติ"