mysql - MySQL 中的空间索引 - 错误 - 无法从发送到 GEOMETRY 字段的数据中获取几何对象

标签 mysql geometry geolocation spatial-index mysql-error-1416

我对整个“空间索引”一无所知,但它似乎是基于纬度/经度进行过滤的最佳解决方案。所以我在表中添加了一列:

所以我创建了一个geometry字段:

  ALTER TABLE `addresses` ADD `point` POINT NOT NULL 

然后我尝试添加一个索引:

  ALTER TABLE `addresses` ADD SPATIAL INDEX ( `point` ) 

但是我得到一个错误:

  #1416 - Cannot get geometry object from data you send to the GEOMETRY field

我在这里做错了什么?

最佳答案

好的,我找到了解决方案:如果某些列字段不包含数据,则无法创建空间索引。运行后

  UPDATE `addresses` SET `point` = POINT( lng, lat )

一切正常。

关于mysql - MySQL 中的空间索引 - 错误 - 无法从发送到 GEOMETRY 字段的数据中获取几何对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5875327/

相关文章:

lua - 为什么我的球不旋转? - lua - 电晕

mysql - 查询优化中更喜欢什么 : Using filesort or more rows examined

math - 平面上的 3d 正交投影

sql - 从另一个表中删除 ID 不匹配的 sql 行

opencv - 改进圆圈检测

javascript - 使用 maxmind geoip2 调出城市名称

android - 通过 Titanium 进行地理定位

ios - 有人可以解释为什么我不能从此方法返回值吗?

php - 针对另一列的每个成员搜索一列

mysql - 无法添加外键约束,工作台