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字段代替了空间数据。我需要UPDATE,不是INSERT,但这不应该有所作为。

4

2 回答 2

2

您应该使用Geometry 构造函数在表中加载新的几何图形,特别是St_GeomFromText函数:

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

几何图形以 WKT(众所周知的文本)格式定义。

于 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 回答