Postgis 从文本字符串声明多边形

Postgis declare a polygon from a text string

我想声明一个正多边形,在本例中是一个没有重复点的正方形。问题是下面的语句 returns 5,但人们会期望 4.

SELECT ST_NPoints(ST_GeomFromText('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))'));

但是没有最后一点我得到一个错误

ERROR: geometry contains non-closed rings

我错过了什么?

在 GIS 世界中,多边形是使用 LinearRings 形成的,LinearRings 是封闭的 LineStrings。要关闭,起点和终点必须相同。所以根据 GIS 惯例,三角形有四个点,正方形有五个点,等等。

More here.