Invalid GIS data provided to function st_geometryfromtext. 解决方法

在将数据库中的text类型数据转换为geometry类型以在geoserver中显示多边形时,遇到坐标未闭合导致的错误。在MySQL中表现为3037错误,而在PostgreSQL中是'geometry contains non-closed rings'错误。解决方案是在POLYGON坐标中添加起始坐标以形成封闭路径。例如,修正了一个四边形的POLYGON字符串,问题得到解决。

        最近需要通过geoserver显示多边形,首先需要先将数据库的数据转换为地理数据存储类型,但由于原本的信息是按text存储的,将text类型转换为geometry就需要用到ST_GeomFromText()函数,存储的是POLYGON。

        在mysql使用该函数过程中,遇到了一个问题,报错是:3037 - Invalid GIS data provided to function st_geometryfromtext.于是通过搜索这个错误提示,发现原因是我们原本的POLUYGON坐标不是封闭的

        在postgreSql中的报错是:ERROR:  geometry contains non-closed rings (lwgeom_pg.c:90)
  HINT:  "...75, 102.227 33.9519, 102.34 35.0212))" <-- parse error at position 76 within geometry.

解决方法是:在POLUYGON里加上起始坐标。

如一个四边形:

POLYGON((102.371 35.0049, 102.249 33.8775, 102.227 33.9519, 102.34 35.0212)) 
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值