QGISを使用して既存のデータベースエントリにGIS機能を追加する


9

ジオメトリ列を含むテーブルを含むpostgreSQLでデータベースを構築しました。非ジオメトリ列にデータを追加すると、postgisを使用してデータベースに接続したときに、QGISでそれらのデータを表示できます。次に、QGISの編集ツールを使用して、既存のエントリにポリゴンを追加します。つまり、QGISでジオメトリ列を埋めます。

これどうやってするの?シェープファイル全体をデータベースに追加することだけを聞いたことがありますが、単一の機能を単一の列に追加することは聞いていません。

例...次の表があります(自治体):

id smallint NOT NULL,
name varchar(50) NOT NULL,
mun_geom geometry(Polygon, 31468)

データベースに接続しているときに、(1、 'municipality1')のように、postgresqlに列のidとnameを入力できます。自治体をpostgisレイヤーとして追加した後、ポリゴンフィーチャを追加してエントリを補完します。


@mapBaker申し訳ありませんが、50件の評判がないため、投稿にコメントを追加できません。とにかく、あなたの解決策は私にはうまくいきません。パーツ追加しようとすると、qgisにエラーが表示される新しいパーツは有効なジオメトリではありませんありがとう
franco_b

回答:


1

Spatialiteで行っているのと同じようなことをしようとしましたが、テーブルがあり、そのテーブルにジオメトリ列を追加してデータを追加したいと考えました。私は直接それを行うことができませんでしたが、結局はうまくいきました。2つのフィールドのみを含む2つ目のテーブルを追加しました。これは、元のテーブルとジオメトリ列に一致させるためのキーです。データを入力してから、2つのテーブルを組み合わせたビューを作成しました。同じことを行うか、2つ目のテーブルにデータを入力してから、UPDATEクエリを使用して、すべてを1つのテーブルだけにしたい場合は、最初のテーブルのジオメトリ列に入力することができます。


8

これを考え出した!(ここでも尋ねました

ジオメトリのない空間テーブル(Shapefile、PostGIS、Spatialite)のレコードには、高度なデジタイジングツールバーを使用してフィーチャに「パーツ」を追加することで、ジオメトリを追加できます。ワークフローは次のとおりです。

  1. ジオメトリが不足しているフィーチャを含むテーブルをQGISに取り込む
  2. レイヤーパネルからレイヤーを選択し、そのレイヤーで編集セッションを開始します
  3. QGISのツールバー領域(ボタンがない場所)を右クリックし、高度なデジタル化ツールバーを開きます
  4. レイヤーの属性テーブルを開き、ジオメトリが欠落しているフィーチャを選択します
  5. 高度なデジタイジングツールバーで、パーツ追加ツールをクリックします
  6. テーブルに新しいフィーチャを追加するのと同じように、フィーチャ(ポイント、ライン、またはポリゴン)のジオメトリを追加できるようになりました。
  7. 編集を保存して、編集を停止します。フィーチャーにジオメトリが追加されました!

0

多分このチュートリアルはあなたを助けることができます:http : //www.gistutor.com/quantum-gis/20-intermediate-quantum-gis-tutorials/34-working-with-your-postgis-layers-using-quantum-gis-qgis .html

[編集]メニューの編集ツールのQgisを使用し、「機能の識別」ツールと「属性テーブルを開く」を使用して属性テーブルを編集することで、postgisレイヤーに新しい機能を追加できます。

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