QGIS:ArcGISのようなサブタイプとドメイン?


8

ArcGISでのようにQGIS(Desktop 1.8.0)でサブタイプとドメインを使用する機会はありますか?

サブタイプとドメイン間の依存関係の可能性に特に関心があります。1つのフィールドの範囲またはコード化された値だけでなく、対応する値も必要です。

たとえば、サブタイプは次のような土地利用カテゴリの有効なクラスを定義します

01 - wood
02 - grassland
03 - urbanization
04 - ...

サブタイプに関連して、次のような各カテゴリの状態/価値を説明するいくつかのドメインがあります

wood1 - deforestation 
wood2 - conifer forest

grass1 - pasture
grass2 - hayfield
grass3 - grass
grass4 - ...

回答:


2

Postgresqlなどのドメインをサポートするデータベースバックエンドを使用する場合は、フィールドにドメインを設定できます。ただし、QGISはまだドメインを認識しないため、フィーチャを作成または編集するときにそのフィールドに何でも入力できるため、ESRIの製品のようなドロップボックスはありません。値がドメインの制約に違反している場合、編集を保存しようとするとエラーが発生し、トランザクションはコミットされません。

編集:これをQGIS 1.8とPostgreSQL 9.1.6でテストしました

編集:エヴァ、はい。それらは自動ではありませんが、ルックアップテーブルを使用して値と説明を格納する場合、データベースで外部キーを使用してバックエンドの整合性を維持できます。次に、QGISドキュメントで、そのテーブルを目次に挿入します。レイヤーについては、プロパティページのフィールドタブに移動します。値の関係ウィジェットを使用して、ルックアップテーブルをレイヤーとして選択し、コードと説明フィールドを選択すると、フィーチャーを作成または編集すると、説明がドロップダウンに表示され、キーがデータベースに保存されます。これはQGIS 2.18を使用しています。


1
ありがとうございました。私はこのドメイン関数をqgisで使用しましたが、うまく機能しました。しかし、2つの属性間の関係を置くこともできますか?たとえば、最初のフィールド(ArcGISのサブタイプ)に「wood」を選択すると、2番目のフィールドは「森林破壊」または「針葉樹林」(サブタイプ「wood」のドメイン)のみを受け入れます。最初の属性が「草地」の場合、「牧草」、「ヘイフィールド」、「草」のいずれかしか選択できません。
Mira

私はこれを見てきましたが、私が見つけたすべての例では、新しいテーブルを作成する必要があります。ドメインが必要なデータが含まれている既存のテーブルがあります。IE:table1には、整数として格納される3種類のデータがあります(1:ツリー、2:ロック、3:池)。この設定では、ユーザーには整数が表示されますが、ドメインを作成してユーザーにテキストバージョンが表示されるようにしたいと考えています。PostgresとQGISでこれをどのように設定しますか?
Ryan Garnett

1
整数値をテキストに変換するルックアップテーブルを作成し、2つをビューで結合して、QGISでビューを表示します。ビューを作成するとき、各行に一意の整数値を持つフィールドを含める必要があります。そうしないと、QGISはそれを表示しません。
HeyOverThere 2013年

1
過去5年以内にこれに対する新しい発見はありますか?
EvaGroßmann、2018

フィールド編集ウィジェットを使用してみてください。Value RelationウィジェットとRelation Referenceウィジェットがあなたの状況に最も役立つと思います。gis.stackexchange.com/questions/156039/… これらの設定はレイヤースタイルに保存されることに注意してください。
csk 2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.