【发布时间】:2015-04-23 10:36:28
【问题描述】:
我有一个 MySQL 表,其中包含行 latitude、longitude 和 radius。经纬度类型为DOUBLE; radius 的类型为 INT,以米为单位。本质上,每一行代表地球上的一个圆圈。
给定 user_latitude 和 user_longitude 的值,我如何选择所有包含该用户圈子的行?
我制作了一个快速图表来说明,以防我的问题不清楚。每个红点代表user_latitude和user_longitude点,每个圆圈代表数据库中的latitude、longitude和radius行。
【问题讨论】:
-
您当前的查询是什么?
-
可以使用类似 where (lat_x - $x) + (lat_y - $y) -$r 的东西。 [这是一个圆的粗略近似..]
-
你不需要担心圆,你只需要关心点之间的距离是否小于半径
-
@pala_ 即圆的定义
-
是的,但你不需要考虑生成圆圈。
标签: php mysql location coordinates