การสร้างเลเยอร์ชั่วคราวจากการเลือกใน QGIS


11

ฉันต้องการสร้างเลเยอร์ tempory จากเลเยอร์ที่มีอยู่และรับเฉพาะคุณสมบัติเหล่านั้นจากเลเยอร์ที่มีอยู่ซึ่งถูกเลือก ฉันรู้ว่า ArcGIS มีฟังก์ชั่นนี้ที่คุณสามารถสร้างเลเยอร์จากคุณสมบัติที่เลือก

อย่างไรก็ตามฉันไม่พบวิธีแก้ปัญหาการทำงานสำหรับเรื่องนี้ใน QGIS ฉันตระหนักถึงคำถามนี้ซึ่งอธิบายถึงวิธีบันทึกสิ่งที่เลือกลงในไฟล์ใหม่ซึ่งไม่ใช่เป้าหมายของฉันที่นี่

การตรวจสอบเมนูบริบทสำหรับ "บันทึกเป็น ... " ไม่ได้ให้ผลลัพธ์ใด ๆ ในส่วนปลั๊กอินที่มีคำค้นหา "การเลือก" ไม่ได้ให้ผลลัพธ์ที่มีความหมายใด ๆ

ในขณะที่พยายามอยู่รอบ ๆ ฉันคิดวิธีแก้ปัญหาด้วย pyqgis แต่ฉันอยากได้วิธีที่ไม่เกี่ยวข้องกับการเข้ารหัสเพราะฉันต้องการแสดงให้เพื่อนร่วมงานฟัง

* วิธี pyqgis :

layer = iface.activeLayer() # layer which has a selection 
feat = layer.selectedFeatures()
fields = layer.fields()

selection = QgsVectorLayer('Point', 'temp', 'memory')

dp = selection.dataProvider()
dp.addAttributes(fields)
dp.addFeatures(feat)

selection.commitChanges()
selection.updateExtents()

QgsMapLayerRegistry.instance().addMapLayer(selection)

คำตอบ:


16

ฉันคิดว่ามีวิธีการอย่างน้อยสองวิธี:

  • เลือกคุณสมบัติของคุณและเรียกใช้คุณสมบัติบันทึกที่เลือกเครื่องมือจากการประมวลผลของกล่องเครื่องมือ

  • ตามที่อธิบายไว้ในคำตอบของคำถามที่เกี่ยวข้องนี้ :

    1. เลือกคุณสมบัติของคุณ
    2. คัดลอกด้วยCtrl+ Cหรือจากแถบเมนู ( Edit > Copy Features)
    3. วางคุณลักษณะดังกล่าวเป็นเลเยอร์รอยขีดข่วนชั่วคราว ( Edit > Paste Features as > Temporary Scratch Layer)

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