mysql - 使用 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 个结果。有任何想法吗?
解决方案
推荐阅读
- javascript - //未捕获的错误:选择颜色不是函数 - 我找不到错误
- apache-kafka - Kafka Admin:如何以编程方式显示和设置每个主题的保留时间?
- vbscript - VBS 中的 Sendkeys 在 telnet 会话中无法正常工作
- python - 如何在 gtk3 glarea 中集成 pyglet opengl 上下文?
- ruby - 使用 Open3 从 Ruby 中的可执行文件中检索退出状态值
- scala - Scala:特征中的抽象比较方法
- python-3.x - Tensorflow:定义 tf 常量时出现无效类型错误
- bash - 如何将 tar/dd 屏幕输出重定向到文件?
- python - 从具有多个页面的 PDF 中提取多个表格
- arrays - 在经典 ASP 中创建对象数组