Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何根据纬度和经度获取给定范围内的所有点?_Php_Mysql_Math_Mysqli - Fatal编程技术网

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

Php 如何根据纬度和经度获取给定范围内的所有点?,php,mysql,math,mysqli,Php,Mysql,Math,Mysqli,场景:我有一个包含三个表的db,用户、位置、库存 在用户中,我有:id、姓名、电子邮件 在我拥有的位置中:id、place、lati、logi 在库存中,我有:id、用户id、产品、总数、位置id 我是个新手,我设法加入了所有的表格: $qry = " SELECT COUNT(id) FROM stock LEFT JOIN users ON stock.user_id= users.id LEFT JOIN locations ON stock.locati

场景:我有一个包含三个表的db,用户、位置、库存

在用户中,我有:
id、姓名、电子邮件

在我拥有的位置中:
id、place、lati、logi

在库存中,我有:
id、用户id、产品、总数、位置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 ";
但我希望能够做到的是使用lati和logi按距离排序。举个例子,我想要25英里内的所有东西,从最近到最远排序

在给出场景时,我如何才能实现这一点

我在谷歌上搜索了一下,但我发现的所有东西都告诉我如何计算两点之间的距离,但我想使用一组点,并在X英里范围内获得所有东西


不确定这些是否都有意义?

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

pow(中心-纬度圈,2)+
pow(中心-纵向圆,2)a点的坐标

LatitudeOfcle,LongtudeOfcle=>点A周围25km处点的坐标

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


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

计算两个纬度和经度点之间距离的公式是什么?为此,您必须使用正弦和余弦函数。哈弗森公式(根据)可以吗?我想我可能是想得太多了。谢谢@devpro,您提供的链接能够实现此目的。