在MySQL中通过经纬度获取10公里范围内的记录

3

很抱歉之前没有处理过GPS数据,可能是一个新手问题。

因此,我创建了一个表格来存储GPS数据,就像这样:

table name : request
    id
    lat decimal(10,8)   
    lng decimal(11,8)   

最近,我想获取给定GPS点周围10公里范围内的数据。

e.g. Given GPS lat: 22, lng: 114 , found all data within 10km

我发现有一种名为“point”的数据类型,以及与之相关的SQL查询

SELECT *
FROM request
WHERE MBRContains
(
LineString
(
Point (
@lng + 10 / ( 111.1 / COS(RADIANS(@lat))),
 @lat + 10 / 111.1
),
 Point (
@lng - 10 / ( 111.1 / COS(RADIANS(@lat))),
 @lat - 10 / 111.1
)
),
 POINTFROMTEXT('POINT(22 114)')
)

即使应该有一些结果,它仍然返回0个结果,例如:我有一些纪录,纬度是22.1,经度是114.1。如何解决?谢谢。

1
我也很想知道这个解决方案。 - onegun
感谢点赞,期待任何想法。 - user3538235
1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接