0

我正在测试一些代码以按与特定点的距离对位置进行排序,得到了一些代码,但它什么也没返回......

我正在输入这个网址

http://localhost:8888/jsontest.php?category=all&long=-2.837275&lat=51.967825 

输入我的 lat 和 long 作为我当前位置的变量,这是查询:

mysql_query("SELECT *,  ( 3959 * acos( cos( radians('$lat') ) *  cos( radians( lat ) ) *  cos( radians( long ) -  radians('$lon') ) +  sin( radians('$lat') ) *  sin( radians( lat ) ) ) )  AS distance FROM LISTINGS ORDER BY distance ASC");

从 URL 获取变量:

$lon = $_GET["long"];
$lat = $_GET["lat"];

数据库表名是listings,lat和long列叫lat和long,谁能帮忙!

谢谢。

4

1 回答 1

0

不确定为什么要手动进行地理空间计算。当您需要 Near 、 Radios 、 Box 、 Polygon 或相对距离时,它会变得复杂。.... MySQL 有空间扩展或更好的使用MongoDB你所拥有的东西是一样的

db.places.find( { loc : { $near : [-2.837275,51.967825] } } )

上面的查询找到最近的点并按距离排序(-2.837275,51.967825)返回它们(不需要额外的排序参数)。

于 2012-12-06T18:17:29.303 回答