在QGIS中通过选择创建temporay图层


11

我想从现有层中创建一个临时层,并且只从选定的现有层中获取那些要素。我知道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)

Answers:


16

我认为至少有两种方法:

  • 选择您的功能,然后从“ 处理工具箱”中运行“ 保存选定的功能”工具。

  • 如对此相关问题的回答所述

    1. 选择您的功能
    2. 使用Ctrl+ C或从菜单栏(Edit > Copy Features)复制它们
    3. 将要素粘贴为临时暂存层Edit > Paste Features as > Temporary Scratch Layer)。

@LaughU-非常欢迎!很高兴:)
约瑟夫(Joseph)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.