使用 MySQL 空间索引,查询错误时出错:3037 提供给函数 st_intersects 的 GIS 数据无效

问题描述

使用 MysqL 5.7 并执行以下查询

CREATE TABLE `my_polygon` (
`id` int(11) NOT NULL AUTO_INCREMENT,`geometry_type` int(11),`polygon` polygon NOT NULL,`point_list` text NOT NULL,`label_name` varchar(255) NOT NULL,`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,SPATIAL INDEX(`polygon`),PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
select * from my_polygon where ST_Intersects(ST_GEOMFROMTEXT('polyGON((1 1,10000 1,20000 10000,1 1))'),polygon)

收到错误消息:

error: 3037 Invalid GIS data provided to function st_intersects.

但是当我将查询 polyGON 区域缩小时,它会起作用。

select * from my_polygon where ST_Intersects(ST_GEOMFROMTEXT('polyGON((1 1,10000 10000,polygon)

查询获得 96 个结果。有什么想法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)