如何根据纬度和经度获得给定范围内的所有点?

Kee*_*ezy 5 php mysql math mysqli

场景:我有一个包含三个表、用户、位置、库存的数据库;

在用户中我有: id, name, email

在我有的地点: id, place, lati, logi

库存中有: id, user_id, product, total_count, location_id

我是新手,我设法加入了所有表:

$qry = "
SELECT COUNT(id)
  FROM stock
  LEFT
  JOIN users 
   ON stock.user_id= users.id
  LEFT
  JOIN locations
   ON stock.location_id= locations.id ";
Run Code Online (Sandbox Code Playgroud)

但我希望能够做的是使用 lati 和 logi 按距离对它进行排序。因此,例如,我想要 25 英里内的所有东西,排序最近到最远。

我该如何解决这个问题?

我做了一些谷歌搜索,但我发现的一切都向我展示了如何获得两点之间的距离,但是我希望能够使用一组点并获得 X 英里范围内的所有内容?

不确定这一切是否有意义?

Yes*_*esh 1

我在我的应用程序中提出了以下简化的计算公式:

pow(CentralLati - LatitudeofCircle, 2) + pow(CentralLongi - LongitudeofCircle, 2) <= 4

在哪里,

CentralLati , CentralLongi => 点 A 的坐标

LatitudeofCircle, LongitudeofCircle => 以 A 点为中心 25 公里范围内的点的坐标。

您可以调整上述公式以匹配您的数据库命名约定。

希望我正确理解您的要求。