我正在测试一些代码来按特定点的距离对位置进行排序,得到一些代码并且它什么也没有返回......
我正在输入此网址
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,任何人都可以帮忙!
感谢。
答案 0 :(得分:0)
不确定您为什么要手动进行地理空间计算。当您需要近距离,无线电,盒子,多边形或相对距离时,它会变得复杂。 .... MySQL有Spatial Extensions或更好的基石使用MongoDB你所拥有的是与
相同的东西db.places.find( { loc : { $near : [-2.837275,51.967825] } } )
上述查询找到距离(-2.837275,51.967825)
最近的点,并按距离返回已排序(不需要额外的排序参数)。