Postgresql PostGis错误无效几何体

Postgresql PostGis错误无效几何体,postgresql,gis,postgis,Postgresql,Gis,Postgis,我正在使用POSTGIS=“2.4”和postgresql9.6并面临以下错误 尝试插入多边形数据时 插入到aalis.mv_l1_地块所有权_aalis(几何图形)值中 (st_polygon fromtext('多边形(482449.20552234241, 999758.79058533313,.....)',20137)); 您的多边形文本太离谱,包含无效的字符…: polygon(482449.20552234241, 999758.79058533313,.....) 不确定坐标

我正在使用
POSTGIS=“2.4”
postgresql9.6
并面临以下错误

尝试插入多边形数据时

插入到aalis.mv_l1_地块所有权_aalis(几何图形)值中 (st_polygon fromtext('多边形(482449.20552234241, 999758.79058533313,.....)',20137));


您的多边形文本太离谱,包含无效的字符

polygon(482449.20552234241, 999758.79058533313,.....)
不确定坐标是什么,但多边形文本通常采用以下形式:

polygon((1.000 1.000, 2.000 1.500, 3.000 2.000, 1.000 1.000))
请注意,x-y对的形式为
x y
,并且对之间有逗号。

您很接近:-)

insert语句中提供的几何图形无效。确保您的
多边形
确实正确,然后尝试以下语句之一(使用或):

要检查几何图形是否正确,可以使用:

请记住,标准类型的多边形需要双括号
用于具有0个内环的多边形,而您的多边形只有一个:
'多边形(482449.2052234241999758.79058533313,…)
。此外,x轴和y轴由空格分隔,而不是由逗号分隔。逗号代替单独的坐标对

例如:

SELECT ST_IsValid('POLYGON((30 10, 40 40, 20 40, 10 20, 30 10))');
 st_isvalid 
------------
 t
(1 Zeile)

SELECT ST_IsValid('POLYGON(30 10, 40 40, 20 40, 10 20, 30 10)');

FEHLER:  parse error - invalid geometry
ZEILE 1: SELECT ST_IsValid('POLYGON(30 10, 40 40, 20 40, 10 20, 30 10...
                           ^
TIP:  "POLYGON(30 " <-- parse error at position 11 within geometry
选择ST_IsValid(((3010,4040,2040,1020,3010));
圣卢西亚
------------
T
(1泽尔)
选择ST_IsValid('多边形(3010,4040,2040,1020,3010)');
FEHLER:分析错误-无效几何体
ZEILE 1:选择ST_IsValid('多边形(3010,4040,2040,1020,3010。。。
^

提示:“POLYGON(30)”我使用了点,因为文本太长了。逗号和括号导致了我的错误。谢谢大家:)
INSERT INTO aalis.mv_l1_parcelownership_aalis 
VALUES (ST_GeomFromText('POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))',20137));
SELECT ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 1, 1 2, 1 1, 0 0))'));
HINWEIS:  Self-intersection at or near point 0 0
 st_isvalid 
------------
 f
(1 Zeile)

SELECT ST_IsValid(ST_GeomFromText('POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))'));
 st_isvalid 
------------
 t
(1 Zeile)
SELECT ST_IsValid('POLYGON((30 10, 40 40, 20 40, 10 20, 30 10))');
 st_isvalid 
------------
 t
(1 Zeile)

SELECT ST_IsValid('POLYGON(30 10, 40 40, 20 40, 10 20, 30 10)');

FEHLER:  parse error - invalid geometry
ZEILE 1: SELECT ST_IsValid('POLYGON(30 10, 40 40, 20 40, 10 20, 30 10...
                           ^
TIP:  "POLYGON(30 " <-- parse error at position 11 within geometry