PostgreSQLのQGISでarray []データ型を使用する


9

私はGISの初心者なので、ここにコメントがあれば嬉しく思います。

QGISに接続したPostgreSQLのテーブルがあります。datatypeのテーブルに列がありますarray[]。しかし、ユーザーが{a、d、c}などのビューを使用して列にデータを挿入するのは簡単ではありません。データを編集する簡単な方法はありますか?

'a、b、c'のようなQGIS triggerにデータを入れ、データをPostgres正しい外観でテーブルに入れるINSERT / UPDATE BEFOREをオンにするというアイデアがあります。しかし、それも最善の方法ではないようです。

回答:


1

私が知っている唯一の方法は、「使用ごとのクラッジ」のようなものです。

たとえば、プロパティ番号の配列(属性名propnum_array、dtype varchar[])を含むデータがあり、配列が空のデータを識別したい場合があります。

propnum_array = {}or propnum_array is nullまたはpropnum[0]=''(またはそのタイプのテーマの他のバリエーション)をテストすると、QGISギャグが作成されますが、regexp_match( propnum_array,'\\d')or propnum_array ilike '{""}'またはor propnum_array = '{""}'を実行して、空propnum_arrayでないものとそうでないものにデータを分割できます 。

つまり、配列に構造(たとえば、配列の特定の要素の特定の値)がある場合、それらをスキャンできます。3要素配列の2番目の要素が「Y」であるすべての値が必要な場合、次のようなものが必要になりますregexp_match( propnum_array,'[,]*\'Y\'\[,]*')(一致文字列の内部でコンマと単一引用符をエスケープする必要がありますが、他の誰かが心配する必要がある場合)。

機能するという事実propnum_array ilike '{""}'は、QGISが配列をテキストのように扱うことを示しているようです。または、必要に応じてオンザフライでテキストにキャストすることもできますが、配列タイプがドキュメント化されていないことは意味がありません(AFAIK)。配列の処理に関するドキュメントは見つかりませんでした。また、最近2015年1月にosgeo-qgisメーリングリストに質問があります。

'Data Driven Input Mask'プラグインがv1.0.0(2015年2月)以降配列処理を行っていることは理解していますが、主なヒントは式エディターに配列関数がないことだと思います。

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