mysql查询使用空间_mysql – 使用我的SQL进行空间查询

在尝试使用SQL更新语句将'latitude'和'longitude'列的数据整合到'coordinate'的Point格式列后,执行空间查询以筛选位于指定多边形内的记录时遇到问题。查询返回空结果,尽管预期存在匹配的点。已尝试调整多边形坐标,但问题依然存在。可能的错误源包括坐标系不匹配、数据类型转换错误或者多边形定义有误。
摘要由CSDN通过智能技术生成

我正在使用下面的语句将名为’lattitude’和’longitude’的两个varChar格式化列写入名为’coordinate’的Point格式化列.

"UPDATE table_name SET coordinate = PointFromText(CONCAT('POINT(',table_name.longitude,' ',table_name.lattitude,')'))"

我尝试使用以下语句对坐标列执行空间查询.

SELECT id , coordinate FROM table_name WHERE MBRContains(GeomFromText('Polygon(-126.728566 49.226434, -123.652395 23.586457,-56.679738 23.908252,-53.076223 55.243002)'), coordinate)

根据这个tool,我的查询中的多边形覆盖了整个美国.我知道我的表中有些点落在美国,但我仍然没有得到任何结果(请注意,我得到一个空结果而不是错误).关于我做错了什么的任何想法?

UPDATE.以下是根据以下建议执行查询的更新尝试.

SET @g1 = GeomFromText('Polygon((23.586457 -123.652395,23.908252 -56.679738,55.243002 -53.076223,55.243002 -53.076223,23.586457 -123.652395))');

SELECT id , coordinate FROM table_name WHERE MBRContains(@g1, coordinate)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值