PHP / Wordpress - 根据纬度和经度查找最近的位置

时间:2012-08-17 17:39:49

标签: php mysql wordpress geolocation

我现在可以使用我网站上的移动浏览器获取访问者的经纬度。我的网站上有超过1000个位置的数据库,作为自定义wordpress内容类型的帖子。每个位置都有与之相关的纬度和经度。

我希望网站能够像这样工作:
当用户到达时,它要求他们共享他们的位置(DONE)
然后它将它们的lat和long存储在PHP变量(EASY,NEXT)中 现在拿他们的lat和long,并查询数据库,并列出最近的帖子,如下所示:
-----帖子标题1(1.3英里远)
-----帖子标题2(1.7英里远)
等等。

如何在我的wordpress安装中使用PHP来执行此操作?

很抱歉这么快就编辑它。我找到了Google的一个页面,看看它是否可以帮助我满足我的需求。 https://developers.google.com/maps/articles/phpsqlsearch_v3?hl=hu-HU

这里的主要问题是,我的lat和long在数据库中存储如下:
表:wp_postmeta
Column1:meta_key(包含许多不同的值,但我关心的是包含'location_latitude'或'location_longitude'的值) 第2列:46.346940(包含纬数或长数,取决于Column1中的内容)

那么如何将此查询转换为与我的数据库一起使用?
SELECT post_id, ( 3959 * acos( cos( radians(37) ) * cos( radians( LATITUDE ) ) * cos( radians( LONGITUDE ) - radians(-122) ) + sin( radians(37) ) * sin( radians( LATITUDE ) ) ) ) AS distance FROM wp_postmeta HAVING distance < 25 ORDER BY distance LIMIT 0 , 20;

1 个答案:

答案 0 :(得分:0)

尝试this张贴。基本上你需要计算两个lat-long对之间的距离。这将是一些球形数学,可能使用Haversine距离公式。

此外,如果您害怕数学,MySQL确实支持spatial queries

相关问题