線を多角形に変換する


13

市街地のシェープファイルがありますが、残念ながらシェープファイルには1行しか含まれていません。シェープファイルは次のようになります。

ここに画像の説明を入力してください

これらの線をQGISの面積ポリゴンシェープファイルに変換したいと思います。「Lines to polygons」ツール(Vector> Geometry Tools> Lines to polygons)で試しましたが、正しく機能しませんでした。このツールを使用すると、シェープファイルは次のようになります。

ここに画像の説明を入力してください

QGISでラインシェープファイルをエリアポリゴンシェープファイルに変換する他の方法はありますか?

ところで、私はQGIS 2.14.3 Essenを使用しています。


2
前回そのツールを使用したときに似たようなものがありました。ポリゴン化ツールを使用してポリゴンを取得できました。
ジョンズ

あなたの答えを求めて、ポリゴン化ツールはどこにありますか?
マークホワイト

Polygonizeは、Processing Toolbox、QGISジオアルゴリズム、ベクタージオメトリツールにあります。
-klewis

私はそれを試しましたが、ポリゴン化ツールを実行すると、空のシェイプファイルが得られます:-(
Mark White

シェープファイルをドロップボックスなどにアップロードできますか?
-AndreJ

回答:


16

Polygonize処理ツールボックスのツールは、単純な行で引き続き機能します。

ここに画像の説明を入力してください

ただし、線が交差するか、共通の頂点を共有する必要があります。そして、線は自己交差してはいけません。

コーナーの頂点をスナップして機能させる必要がある場合があります。通常、スナップ許容値を頂点まで10ピクセルに設定します。


1
私も線をポリゴンに変換するときに同じ問題に直面しました。「ポリゴン化」ツールは問題を解決しました。 gis.stackexchange.com/a/211794/62237
Sjs

7

Polygonizeツールが見つからない場合のヒントです。私のQGIS 2.18.3インストール(Windowsの場合)で、私は見つけることができなかったPolygonize時にツールをVector geometry toolsツールボックス内。python-shapelyOSGeo4Wでライブラリをインストールする必要があることに気付くのに少し時間がかかりました(QGISのPerfect Polygonsに感謝します)。


ありがとうございました!WindowsのQGISにはすぐに使用できるポリゴン化ツールがラスタ専用であるため、長い間混乱していました。必要な場合とそうでない場合の別の手順は、「処理>>オプション>>プロバイダー」でQGISジオアルゴリズムを有効にすることです
マットウィルキー

この答えをありがとう。私はもうそれを見つけられないので気が狂っていると思った
...-gisnside

3

あなたの画像を見ると、各線はある領域を完全には包囲しておらず、線はフェンスとして機能しているだけで、最初に再接続することはないと仮定します。ポリゴンはラインの端から作成されているため、「ポリゴンからライン」ツールが問題なく機能し、そのデータが問題になっています。

私が考えることができるのは、ポリゴンの新しいレイヤーをデジタル化することだけだと思います。ありがたいことにQGISは、2.14で利用できるトレースデジタイズツール(磁石アイコン)でそれを本当に簡単にしました。


0

穴がない場合、領域全体をカバーするのに十分な大きさの単一のポリゴンでスクラッチレイヤーを作成します。次に、それをポリゴンからポリゴンへの結果と交差させ、必要に応じてさらに分割します。


0

QGIS 2.18およびQGIS 3.4でテスト済み

"Virtual Layer"throughの使用を提案できますLayer > Add Layer > Add/Edit Virtual Layer...

に5つのラインフィーチャがある"lines"とします。下の画像を参照してください。

例

次のクエリを使用すると、結果を得ることができます。

SELECT l.id, l.NAME, MakePolygon(AddPoint(l.geometry,StartPoint(l.geometry)))
FROM lines AS l
GROUP BY l.id

出力仮想レイヤーは次のようになります

Result_1

@AndreJで既に述べたように、線は共通の頂点と交差するか共有します。そして、線は自己交差してはいけません。レイヤーのトポロジーのクリーニングに関しては、v.cleanGRASSツールセットを検討することをお勧めします。


行に自己交差がある場合は、次のクエリでConvexHullを使用できます

SELECT l.id, l.NAME, ConvexHull(AddPoint(l.geometry,StartPoint(l.geometry)))
FROM lines AS l
GROUP BY l.id

場合

出力


参照:


0

ポリラインが互いにオーバーラップしている場合、Polygonizeツールは次のように処理できません。

ここに画像の説明を入力してください

ただし、Lines to polygonsツールは次のように期待どおりに機能します。

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.