シェープファイルの属性にデフォルト値を設定するにはどうすればよいですか?


8

QGIS 2.14.6で、ユーザーが明示的に値を設定しない場合に適用されるシェープファイル(またはスペーシャライトレイヤー)の属性のデフォルト値を定義したいと思います。

標準のツール/設定(Pythonなし)を使用してこれを達成する方法はありますか?


1
しかし、これらの仮想フィールドが私のデータソースの「実際の」属性ではないことを除いて(プロジェクトにのみ格納されていることがわかっている限り)、仮想フィールドに値を設定する方法でユーザーの編集に反応するように指示するにはどうすればよいですか?たとえば3.1415926、ユーザーが属性値を設定していないとしましょう。そして、それを実際の属性に変換できますか?質問に対する質問...さらに、「Pythonなし」は必須ではありませんでしたが、「Pythonの少し」でこれを達成できたとしても大丈夫です;
Jochen Schwarze

申し訳ありませんが、私のコメントを削除しました:「仮想フィールドを使用できます」プラグインを使用して可能なメソッドを提供する=)
Joseph

この質問を確認してください。ただし、Pythonコードです。gis.stackexchange.com/questions/192105/…–
Fran Raga

回答:


16

QGIS 3

レイヤーパネルでレイヤーを選択し、左クリックします。プロパティを選択します。以下に示すように「属性フォーム」を選択します。表示されているように、「利用可能なウィジェット」リストからフィールドを選択します。[デフォルト]ダイアログでデフォルト値の式を指定します。[更新時にデフォルト値を適用する]をオンにすると、フィーチャのジオメトリや別の属性が変更されるたびに値が調整されます。これにより、「last_modified」タイムスタンプや更新された「area」などが可能になります。

フィールドのデフォルト値を設定QGIS 3.0.3


QGIS 2.18

QGIS 2.18から、これは追加のツールなしで可能です。

フィールドのプロパティに移動し、デフォルト値を割り当てたいフィールドのボタンをクリックして、式を入力します。また、ジオメトリを入力として受け取ることもできます。

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

サイドノート:元の質問はQGIS 2.14を対象としていることは知っていますが、これはこの質問の将来の読者にとってまだ興味があると思います。


1
間違いなく興味がある;)
ジョセフ

1
2.17の機能を見ただけです。まさに私が探していたもの。
Jochen Schwarze

7

AutoFieldsプラグインがあり、属性フィールドを作成(または変更)して、カスタム式で自動的に更新できます

また、さまざまな形式でテストされており、自動フィールドは仮想フィールドとは見なされません(プラグインのホームページから引用):

AutoFieldsは「X」ベクター形式で動作しますか?

PostgreSQL / PostGIS、SpatiaLite、Shapefiles、WFS-T(トランザクションWeb機能サービス)、メモリレイヤーでAutoFieldsをテスト済みです。他のベクター形式でAutoFieldsを使用しているかどうかをお知らせください。

AutoFieldは仮想フィールドのようなものですか?

いいえ。バーチャルフィールドとは異なり、オートフィールド:

  • 計算値をデータに保存します。
  • QGISプロジェクトから独立しています。つまり、QGISプロジェクトを切り替えることができ、AutoFieldsは引き続き機能します。
  • 編集可能なベクターレイヤーでのみ機能します。

5

上記のこれらの属性値を使用して、記号のいくつかの側面(記号サイズ、不透明度)を制御したいので、データを定義したプロパティを使用すると、これを実現するための別の優れた(柔軟な)方法があることがさらに調査されました。(ジェネリック)式

if("attribute_name" is null, @default_value, "attribute_name")

where @default_valueはプロジェクト変数として定義され、属性に値が設定されておらずattribute_name、それ以外の場合はユーザーが定義できるデフォルトを返します。

プロジェクトプロパティで変数を定義します。

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

データで定義されたプロパティ(この場合はユーザー定義の不透明度の赤い色)を使用して式を設定します。

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

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