PHP按距离排序位置,不返回任何内容

时间:2012-12-06 18:04:45

标签: php

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

我正在输入此网址

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"];

数据库表名是列表,lat和long列叫做lat和long,任何人都可以帮忙!

感谢。

1 个答案:

答案 0 :(得分:0)

不确定您为什么要手动进行地理空间计算。当您需要近距离,无线电,盒子,多边形或相对距离时,它会变得复杂。 .... MySQL有Spatial Extensions或更好的基石使用MongoDB你所拥有的是与

相同的东西
db.places.find( { loc : { $near : [-2.837275,51.967825] } } )

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