【问题标题】:SQL radius search in WordpressWordpress 中的 SQL 半径搜索
【发布时间】:2014-09-01 01:17:54
【问题描述】:

我正在尝试根据地理位置进行半径搜索。我找到了使用 long 和 lat 值执行此操作的代码,只是因为 Wordpress,没有称为经度或纬度的列。

我如何执行此搜索,或者是否有更简单的方法进行半径搜索,用户输入城市名称和距离,如果数据库中有数据,则搜索数据?

    SELECT 
    *
FROM
    `locator`
WHERE
    SQRT(POW(`center_lat` - 49.843317 , 2) + POW(`center_lng` - 24.026642, 2)) * 100 < `radius`

【问题讨论】:

  • 看起来您正在使用毕达哥拉斯理论来计算距离。要准确计算地球上的距离,请尝试使用球面几何计算球体距离的 Haversine 公式。谷歌它找到大量的参考和可能的实现。

标签: sql wordpress search geolocation


【解决方案1】:

我设法用谷歌地图 api 和算法解决了这个问题。

  1. 使用 Google api 获取经度和纬度
  2. 获取所有帖子的经纬度
  3. 将两者与本网站http://snipplr.com/view/2531/calculate-the-distance-between-two-coordinates-latitude-longitude/ 上的代码进行比较以获取距离
  4. 将搜索中帖子的 ID 添加到数组中并显示它们

【讨论】:

  • 我查看了那个 PHP 函数,它实际上是 Haversine 论坛。
猜你喜欢
  • 1970-01-01
  • 2020-10-11
  • 2016-09-06
  • 2014-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-15
  • 1970-01-01
相关资源
最近更新 更多