QGISの選択範囲からテンポレイレイヤーを作成する


11

既存のレイヤーから一時レイヤーを作成し、選択されている既存のレイヤーからそれらの機能のみを取得したいと考えています。ArcGISには、選択したフィーチャからレイヤーを作成できるこの機能があることを知っています。

しかし、QGISでこれに対する有効な解決策を見つけることができませんでした。私がここでの目的ではない選択新しいファイルに保存する方法を説明するこの質問を知っています。

「名前を付けて保存」のコンテキストメニューを確認しても、結果は得られませんでした。プラグインセクションで「selection」という検索語を使用しても、意味のある結果は得られませんでした。

いろいろ試してみたところ、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

私は少なくとも2つの方法があると思います:

  • 機能を選択し、Processing ToolboxからSave selected featuresツールを実行します

  • 関連する質問に対するこの回答で説明されているように

    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.