0

PostGIS テンプレートを使用して PostgreSQL 8.4 データベースにデータを入力しようとしています。私はUPDATE多角形にすることができません:

> UPDATE my_table SET coords = POINT(1, 1)
UPDATE 0 1

> UPDATE my_table SET box = POLYGON(((1, 1), (2, 3), (3, 3), (1, 1)))
ERROR:  function polygon(record) does not exist

> UPDATE my_table SET box = POLYGON((1, 1), (2, 3), (3, 3), (1, 1))
ERROR:  function polygon(record, record, record, record) does not exist

> UPDATE my_table SET box = POLYGON(1, 1, 2, 3, 3, 3, 1, 1)
ERROR:  function polygon(numeric, numeric, numeric, numeric, numeric, numeric, numeric, numeric) does not exist

> UPDATE my_table SET box = ((1, 1), (2, 3), (3, 3), (1, 1))
ERROR:  column "box" is of type polygon but expression is of type record

ポリゴンを挿入するにはどうすればよいですか? データはテーブルに既に存在しNULL、空間データの代わりにフィールドがあることに注意してください。する必要がありますがUPDATEINSERT違いはありません。

4

2 に答える 2

2

Geometry コンストラクターを使用して、テーブルに新しいジオメトリをロードする必要があります。具体的にはSt_GeomFromText関数です。

UPDATE my_table SET box = ST_GeomFromText('POLYGON ((1 1), (2 3), (3 3), (1 1))');

ジオメトリは、WKT ( Well-Known Text ) 形式で定義されます。

于 2010-08-02T07:45:45.273 に答える
1

試す:

UPDATE my_table SET box = '((1, 1), (2, 3), (3, 3), (1, 1))'::polygon;

私の知る限り、一般的にほとんどの幾何学的タイプには引用符が必要です。

于 2010-08-02T01:50:10.787 に答える