首页 > 解决方案 > 使用 MySQL 空间索引,查询错误时出错:3037 Invalid GIS data provided to function st_intersects

问题描述

使用 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 1,10000 10000, 1 1))'), polygon)

此查询得到 96 个结果。有任何想法吗?

标签: mysqlspatialspatial-queryspatial-index

解决方案


推荐阅读