我有一个项目,其中我必须显示在10公里内的用户当前位置附近的酒店。我通过下面给定的sql查询成功地得到了结果。此外,如果用户选择北/南/西/东方向,则我必须向用户显示该特定方向上只有附近的酒店可用。我怎样才能知道附近的旅馆在哪个方向?
$nearby = DB::select( DB::raw("SELECT * ,((((acos(sin((?*pi()/180)) * sin((`latitude*pi()/180))+cos((?*pi()/180)) * cos((latitude*pi()/180)) * cos(((?- longitude)*pi()/180))))*180/pi())*60*1.1515*1.609344)) as distance FROM hotel_data HAVING distance<= 10 ORDER BY distance") )->setBindings([$request->latitude,$request->latitude,$request->longitude]);`
1条答案
按热度按时间qgelzfjb1#
从dougv.com你想用这个函数来得到一个精确的方位,同时记住地球的曲率。
然后,要将其转换为指南针方向,您可以在同一站点上使用此功能:
当你为所有坐标指定了一个罗盘玫瑰方向时,你可以很容易地过滤它们。