【发布时间】:2012-01-02 14:28:46
【问题描述】:
大家好,我正在寻找一种方法来通过从 php 页面查询 MYSQL 数据库来计算最近的位置。到目前为止,我在 PHP 中有一个函数,它使用 Haversine 公式来计算最近的位置,我使用 PHP 函数的唯一原因只是为了理解公式本身。现在我正在寻找一种查询数据库的方法,该数据库将包含最近位置的纬度和经度值。我希望通过将我的 php 页面上的 lat 和 long 值与数据库中的所有 lat 和 long 值进行比较来做到这一点。我一直在看Googles tutorial。但我不太了解他们使用的 sql 查询。
$query = sprintf("SELECT address, name, lat, lng, ( 3959 * acos( cos( radians('%s') ) *
cos( radians( lat ) ) * cos( radians( lng ) - radians('%s') ) + sin( radians('%s') ) *
sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < '%s'
ORDER BY distance LIMIT 0 , 20",
查询中的距离是什么意思?因为我自己尝试过使用这个查询,但它没有返回任何结果。如果有人能帮助我理解这个查询,将不胜感激。
【问题讨论】:
-
您的数据库中有任何条目吗?您的数据库列的名称是否相同(
lat和lng)并且您的纬度和经度值是否正确?我自己过去使用过该教程,效果很好。