กำลังอัปเดตตำแหน่งไฟล์ในโครงการ QGIS หรือไม่


15

ฉันมีไฟล์โครงการ QGIS ประมาณ 30 ไฟล์สำหรับลูกค้า 30 คน แต่ละไฟล์ถูกบันทึกลงในคอมพิวเตอร์ของฉันและไฟล์เวคเตอร์และแรสเตอร์ที่เกี่ยวข้องทั้งหมดจะถูกบันทึกไว้ในเครื่อง

ขณะนี้เราอยู่ในระหว่างการย้ายสำนักงานและอัพเกรดคอมพิวเตอร์ของเรา

เป็นผลให้ฉันต้องย้ายไฟล์ทั้งหมดของฉันจากคอมพิวเตอร์ของฉันไปยังไดรฟ์เครือข่ายจึงทำลายการอ้างอิงไฟล์ก่อนหน้าใด ๆ

นอกเหนือจากการคลิกแต่ละไฟล์ด้วยตนเองและค้นหาตำแหน่งใหม่แต่ละแห่งแล้วยังมีวิธีอื่น ๆ

(แต่ละโปรเจ็กต์อาจมีลิงก์ไม่กี่ร้อยลิงก์เพื่ออัปเดต)

คำตอบ:


20

ฉันไม่แน่ใจว่าคุณใช้ QGIS รุ่นใด แต่ใน v> 2.0.1 คุณอาจใช้ช่องโต้ตอบ "จัดการเลเยอร์ที่ไม่ดี" เช่นนี้:

ป้อนคำอธิบายรูปภาพที่นี่

  1. เลือกเลเยอร์ทั้งหมดในไดเรกทอรีทั่วไปขณะที่กดปุ่ม Ctrl ค้างไว้
  2. ดับเบิลคลิกที่ไฟล์สุดท้ายที่คุณเลือก
  3. เส้นทางใหม่หนึ่งในเลเยอร์และเลือกเปิด
  4. ทำซ้ำกระบวนการสำหรับไดเรกทอรีเพิ่มเติม

ชุดข้อมูลนี้จะทำการอัปเดตไฟล์ตามชั้นของไดเรกทอรี

ป้อนคำอธิบายรูปภาพที่นี่


1
ขอบคุณที่ชี้นำสิ่งนี้! ฉันได้รับการมองหาคุณสมบัติเช่นนี้ตั้งแต่ ArcGIS เพิ่มตัวเลือกแหล่งข้อมูลซ่อมไม่กี่รุ่นที่ผ่านมา
HeyOverThere

ฉันไม่รู้ว่าคุณสามารถอัปเดตหลายเลเยอร์ด้วยไดเรกทอรีทั่วไปได้ในครั้งเดียว ขอบคุณ!
SAnderka

ไชโย! นี่ดูเหมือนจะเป็นสิ่งที่ฉันกำลังมองหา ฉันยังไม่ได้ลอง แต่จะทำวันนี้ ถ้ามันทำงานฉันจะยอมรับคำตอบ
Ger

มันดี แต่ดูเหมือนจะไม่สามารถทำงานกับฐานข้อมูลไฟล์ตามที่ต้องการเพียงไฟล์ที่ไม่ได้เป็นไดเรกทอรี จากการทดสอบฉันพยายามดูว่าไฟล์ gdb ชื่อ arcane อันใดอันหนึ่งอาจใช้งานได้ แต่หลังจากที่ฉันพยายามทำไปส่วนใหญ่แล้ว
johns

ดูเหมือนจะไม่ทำงานกับฉันด้วย QGIS 3.2 บน macOS ฉันลองทั้งคีย์คำสั่งและปุ่ม Shift สำหรับการเลือกหลายไฟล์ แต่ดูเหมือนว่าจะไม่แก้ไขด้วยตนเองหลายไฟล์เมื่อฉันเปลี่ยนเส้นทางเดียว
Adam Stewart

19

ไฟล์โครงการ QGIS เป็นไฟล์ข้อความแบบง่าย คุณสามารถค้นหาและแทนที่เนื้อหาด้วยโปรแกรมแก้ไขข้อความใด ๆ

เพียงค้นหาวิธีการอ้างอิงไฟล์ในที่เก็บข้อมูลเก่าและใหม่และคุณรู้ว่าจะต้องเปลี่ยนแปลงอะไร

Notepad ++ อนุญาตให้ทำการประมวลผลแบบแบตช์ในหลาย ๆ ไฟล์ในขั้นตอนเดียว


1
พยายามทำสิ่งนี้ด้วย QGIS 3.2 บน macOS และดูเหมือนว่าไฟล์โครงการเป็นไฟล์ไบนารีดังนั้นโซลูชันนี้จึงใช้งานไม่ได้อีกต่อไป
Adam Stewart

2
@ Adam เริ่มต้นไฟล์. qgz เป็นไฟล์ซิป. qgs ในเวอร์ชัน คุณสามารถแตกไฟล์เหล่านั้นในระบบปฏิบัติการของคุณหรือเลือกที่จะบันทึกเป็นไฟล์. qgs ตามเดิมใน QGIS 2
AndreJ

7

หากคุณบันทึกโครงการด้วยการเชื่อมโยงพา ธ แบบสัมพันธ์ก่อนที่จะย้ายข้อมูลคุณไม่จำเป็นต้องแก้ไขลิงก์ใด ๆ ในโครงการใหม่

ใน QGIS v2.01 ไปที่โปรเจ็กต์> คุณสมบัติโปรเจ็กต์และเลือกบันทึกพา ธ สัมพัทธ์ก่อนที่คุณจะย้ายข้อมูลของคุณข้ามจากนั้นตราบใดที่คุณเพิ่งคัดลอกข้อมูลข้ามและเก็บโครงสร้างโฟลเดอร์เดิมไว้ไฟล์จะทำงานเมื่อคุณเปิดโครงการอีกครั้ง ไดรฟ์เครือข่ายของคุณ

บันทึกเส้นทางที่สัมพันธ์กัน


น่าเสียดายที่บิตแรกของโครงสร้างจะแตกต่างกันอย่างน้อยที่สุด
Ger

ตกลงเส้นทางที่สัมพันธ์กันจะยังคงทำงานตราบใดที่โครงการและข้อมูลถูกบันทึกไว้ในโครงสร้างเดียวกันโดยสัมพันธ์กันแม้ว่าส่วนแรกจะเปลี่ยนไปก็ตาม ในตัวอย่างด้านล่างตราบใดที่คุณย้ายและทำให้ทุกอย่างต่ำกว่าระดับโฟลเดอร์การทำงานส่วนแรกของเส้นทางอาจแตกต่างกันตามที่คุณต้องการ โครงการ = C: /Work/Projects/myproj.qgs และ Data = C: /Work/Data/myfile.shp
MAJ742

ยอมรับว่าเป็นเพียง C: // wil เท่านั้นที่เปลี่ยนเป็นไดรฟ์เครือข่าย
Ger

ฉันอาจพบวิธีแก้ปัญหาเส้นทางสัมพัทธ์ ฉันหวังว่าทีม QGIS สามารถตรวจสอบและแก้ไขปัญหานี้ได้ ดูโพสต์ของฉันที่นี่: gis.stackexchange.com/questions/210992/…
ข้าวโอ๊ต

1

ฉันพบปลั๊กอินที่ดีที่สามารถใช้งานได้: Qconsolidate (เพื่อติดตั้ง: ในการตั้งค่าปลั๊กอินก่อนอื่นให้ทำเครื่องหมายในช่อง "ปลั๊กอินทดลอง") ปลั๊กอินนี้บันทึกเลเยอร์ทั้งหมดในโครงการเป็นหนึ่งโฟลเดอร์และแก้ไขเส้นทาง สามารถย้ายและเปิดโฟลเดอร์และโครงการได้จากทุกที่


Qconsolidate imho แก้ปัญหาที่แตกต่าง มันสร้างสำเนาของชุดข้อมูลแทนการเปลี่ยนเส้นทางไปยังตำแหน่งไดรฟ์เครือข่ายใหม่
underdark

สิ่งนี้ถูกต้อง ถ้าคุณทำงานกับรูปร่างขนาดใหญ่จำนวนมากในหลายโครงการมันไม่มีประโยชน์มาก อย่างไรก็ตามถ้าคุณทำงานกับเวิร์กสเปซจำนวนน้อยที่มีรูปร่างจำนวนมากอยู่ในแผนที่ที่แตกต่างกันเป็นเรื่องดีที่มีวิธีง่าย ๆ ในการจัดกลุ่มและสำรองข้อมูล
Hannes Ledegen

QPackage ทำเคล็ดลับเหมือนกันสำหรับข้อมูล
gisnside
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.