【问题标题】:How to get distance (latitude and longitude) from mysql query [PHP,MySQL]如何从 mysql 查询 [PHP,MySQL] 中获取距离(纬度和经度)
【发布时间】:2018-08-02 15:03:14
【问题描述】:

我在 mysql 数据库中有这个表。

这是我的 PHP 文件:

$user_latitude = 45.11123;
$user_longitude = 20.33445;

$query = "";

我想创建一个查询,该查询按照与用户位置的距离($user_latitude,$user_longitude)的距离顺序返回(表中行的)id。 我想通过使用 MySQL 查询来做到这一点。

【问题讨论】:

  • 查询的其余部分在哪里?或者你想要一些指针还是为你写?
  • 剩下的我就不写了,因为我只对查询感兴趣。
  • 那么,我想我继续问更多问题并不重要。其中一些是由其他人提出的。祝你好运。
  • Haversine 就是你要找的东西:stackoverflow.com/a/574736/7799650

标签: php mysql


【解决方案1】:

您可以使用下面的公式来计算距离。更多信息请查看herehere

$query = mysql_query("SELECT id, (6371 * acos (cos (radians($user_latitude))* cos(radians(latitude))* cos( radians($user_longitude) - radians(longitude) )+ sin (radians($user_latitude) )* sin(radians(latitude)))) AS distance FROM table_name WHERE 1 ORDER BY distance DESC");

提供的距离将以公里为单位。如果您需要里程,请使用 3959 而不是 6371。

【讨论】:

  • 谢谢,我该如何设置限制,比如 10 公里?
  • 你可以使用WHERE distance < 10
猜你喜欢
  • 2014-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-29
  • 1970-01-01
  • 2017-09-05
  • 2014-08-29
  • 1970-01-01
相关资源
最近更新 更多