2

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

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

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

抱歉这么快就编辑了。我从谷歌找到了一个页面,看看它是否能满足我的需要。https://developers.google.com/maps/articles/phpsqlsearch_v3?hl=hu-HU

这里的主要问题,我的纬度和经度在数据库中是这样存储的:
表:wp_postmeta
Column1:meta_key(这包含许多不同的值,但我关心的是包含'location_latitude'或'location_longitude'的那些)
Column2:46.346940(包含 lat 或 long 数字,具体取决于 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;

4

1 回答 1

0

试试这个帖子。基本上你需要计算两个经纬对之间的距离。这将是一些球形数学,可能使用Haversine距离公式。

此外,如果您害怕数学,MySQL 确实支持空间查询。

于 2012-08-17T17:45:05.833 回答