QGISを使用して頂点のレイヤーのすべての線を分割しますか?


11

このように)QGISレイヤーのすべての行を頂点で自動的に分割します。

私はグーグル検索をして、この記事を見つけました。これは非常に近いですが、ワークフローは複雑です。このツールを使用するには、同僚(GISに不慣れな人)を訓練する必要があるため、プラグインのような単純なものか、GRASSを必要としないものが必要です。前の回答の時間である 2010年から長い時間が経過しているので、同じ結果を達成するためのより良い方法があるのだろうか?


現在はQGISのGRASSツールを使用できます。ベクトル->ジオメトリツール->シングルパーツからマルチパーツが役立つ場合があります。Sextanteツールボックスは、「ライン層を爆発」と「スプリット機能」がプラグインされている必要があり
simplexio

あなたが言った答えは(まだ)正しい手順だと思います。ベクトルツール「シングルパートからマルチパート」では、必要な処理が行われません。各頂点ではなく、ノードで複数線ストリングを分割します。
ミカ

@simplexio:Sextanteツールボックスを使用すると、Bernd V. answerのようなエラーメッセージが表示され、ネット上のどこにでも「split feature」プラグインが見つかりません。
Cao Minh Tu

@Micha:その手順は正しいかもしれませんが、GISに不慣れな同僚にとっては複雑すぎるため、他のすべてが失敗したときの最後の手段と考えます:)
Cao Minh Tu

@Cao Minh Tu:Linuxマスターと、新しく作成されたラインレイヤーを備えたWin7 1.8で「スプリット機能」を再度テストしましたが、そこで機能します。最初からテストレイヤーを作成し、そこに適用してください。元のレイヤーに最初に解決する必要があるエラーがあるかもしれません!?
ベルントV.

回答:


17

爆発のラインからProcessing Toolboxには、別の行にその頂点にすべての行を分割します。

メニュー処理->ツールボックス。検索フィールドに「explode」と入力して、関数を見つけます。ドロップダウンからラインレイヤーを選択して開始します。これにより、新しいレイヤーが作成されます。

ラインレイヤーから1つ以上のラインを選択すると、これらのフィーチャのみを含む分割レイヤーが生成され、残りは破棄されます。

注: QGISは高速で移動しているため、以下の情報はすべて古くなっています。

SEXTANTEツールボックスを使用した場合、Explode行がnoob-solutionになる と思います。 。残念ながら、現時点では機能していないようです。エラーメッセージのみが表示されます。QGIS Geoalgorithms > Vector geometry tools > Explode lines

Traceback (most recent call last):
  File "path/.qgis//python/plugins\sextante\core\GeoAlgorithm.py", line 145, in execute
    self.processAlgorithm(progress)
  File "path/.qgis//python/plugins\sextante\algs\Explode.py", line 58, in processAlgorithm
    features = QGisLayers.features(layer)
NameError: global name 'layer' is not defined

実用的なソリューションは、Split Feature「寄稿された」リポジトリからの-Pluginであり、私のために仕事をします。

一般に、私は別々のプラグインよりも六分儀関数を好みます。六分儀のワークフローは非常に高速であり、中間ステップのジャンクファイルを生成しません(動作する場合)。

編集:残念ながら、多くのプラグインはまだ公式のプラグインリポジトリに移動されていませんが、デフォルトのリポジトリから削除された「貢献」プラグインリポジトリhttp://pyqgis.org/repo/contributedからのみ利用可能 です。バージョン1.8のリスト。

そこで、それらを個別にダウンロードして、.qgis / python / pluginsフォルダーに解凍するか、このアドレスをプラグインリポジトリリストに追加できます。 Plugins -> Fetch python plugins -> Tab "Repositories" -> Add ... -> enter a name and the url.


「Split Feature」プラグインの場所を教えてください-公式のプラグインリポジトリで見つけることができませんか?SEXTANTE Explode行で、あなたと同じエラーメッセージが表示されました-バグレポートがあります:hub.qgis.org/issues/7157
Cao Minh Tu

@Cao Minh Tu:申し訳ありませんが、このプラグインが排他的に存在する古いリポジトリをリストに追加したことを完全に忘れていました。私の編集を参照してください。
ベルントV.

Split Featureプラグインを試しましたが、エラーメッセージはありませんが、出力レイヤーには何も含まれていません。
曹操ミン

pyqgis.org/repo/contributedには404エラーしかありません-URLは変更されていますか?
til_b 14

@til_be私の編集を参照してください
ベルント

4
  1. GRASSマップセットを開く/作成します(データでツールを実行できます)
  2. GRASSツールを開く/分割したいシェープファイルをGRASSデータベースにインポートします
  3. v.split.vertを実行(頂点の最大数= 2に設定)

このソリューションは、zの値をセグメントジオメトリに保持します
タマスコサ

1
    segment_list = []
    for feature in feature_list:
        vertices = feature.geometry().asPolyline() # returns list of vertices comprising polyline
        for point in range(len(vertices)-1):
            segment = QgsFeature()
            segment.setGeometry(QgsGeometry.fromPolyline([vertices[point], vertices [point+1]]))
            segment.setAttributes(feature.attributes())
            segment_list.append(segment)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.