如何防止错误 Mysql ST_PolygonFromText 因为第一个和最后一个坐标不等于
Posted
技术标签:
【中文标题】如何防止错误 Mysql ST_PolygonFromText 因为第一个和最后一个坐标不等于【英文标题】:How to Prevent error Mysql ST_PolygonFromText because first and last Coordinate not equals 【发布时间】:2018-12-18 11:43:52 【问题描述】:我有查询:
SELECT ST_PolygonFromText(CONCAT('Polygon((',DATA_GPS,'))'))
FROM TABLE_A
CROS JOIN TABLE_B
显示错误:
Data truncation: Invalid GIS data provided to function st_geometryfromtext.
第 8 行出错,因为第一个和最后一个 gps 不等于或不关闭多边形。
像这样显示:
Polygon((107.15778031165127 -6.304745648974358 107.15945401007279 -6.304639009497479 107.15949692542361 -6.307624906559413))
如何查询排除不关闭的多边形?
还是谢谢
【问题讨论】:
请显示SELECT ST_AsText(DATA_GPS) FROM TABLE_A CROSS JOIN TABLE_B;
的示例(失败数据以及良好数据(如果有)。
【参考方案1】:
我认为“预防”需要发生在将DATA_GPS
交给空间函数之前。但是,这可能会在之后起作用:
构建一个MultiLineString
,然后与IsClosed()
核对。如有必要,在末尾添加原始点。
【讨论】:
你能举个例子吗?还是谢谢 @PamungkasJayuda - 告诉我你是如何得到DATA_GPS
的,告诉我你使用的是什么客户端语言,我也许可以为你关闭多边形。
你好@RickJames,我想在 mysql Query 中检查那个封闭的多边形。因为我想从查询返回已经使用。无需从客户端语言进行验证。我们不能吗?问候以上是关于如何防止错误 Mysql ST_PolygonFromText 因为第一个和最后一个坐标不等于的主要内容,如果未能解决你的问题,请参考以下文章