【问题标题】:How to get distance to places from DB given longitude and latitude如何在给定经度和纬度的情况下从 DB 获取到地点的距离
【发布时间】:2018-10-26 02:17:16
【问题描述】:

我想从数据库中选择我所在位置周围 10 公里范围内的位置。 例如,当在我的示例数据库中选择 Location_1 时,我想从数据库中获取类似上述条件的位置。 我现在用 Yii2。

这是我的名为“places”的数据库表示例

ID          Location        Longitude   Latitude
----------- ---------- ---------- -----------
1           Location_1      30.8505081  14.2575487
2           Location_2      30.828072   14.1554811
3           Location_3      30.850763   14.250705
4           Location_4      30.8484719  14.252653

现在,我不知道如何从经度和纬度到我当前位置的距离。

【问题讨论】:

  • 改写问题,删除申诉

标签: php mysql yii2


【解决方案1】:

试试这个。该位置的纬度为 14.2575487,经度为 30.8505081,您可以在 10 公里范围内从表格中找到结果。

SELECT *,ROUND(  1.609 * 3956 * 2  * ASIN(SQRT(POWER(SIN((14.2575487 - ABS(Latitude)) * PI()/180 / 2),2) + COS(14.2575487 * PI()/180 ) * COS(ABS(Latitude) * PI()/180) * POWER(SIN((30.8505081 - Longitude ) * PI()/180 / 2), 2) )),0) AS distance FROM places WHERE 1=1  HAVING distance<= 10 

【讨论】:

  • 很高兴为您提供帮助。
猜你喜欢
  • 2015-07-12
  • 1970-01-01
  • 2011-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-28
  • 1970-01-01
  • 2021-09-15
相关资源
最近更新 更多