$salons = Salon::select('salons.*')
->selectRaw('( 6371* acos( cos( radians(?) ) *
cos( radians( lat ) )
* cos( radians( lng ) - radians(?)
) + sin( radians(?) ) *
sin( radians( lat ) ) )
) AS distance', [$lat, $lng, $lat])
->havingRaw("distance < 25")
->where("category_Id" , "=" , $id)
->get();
这个问题给了我这个答案-
"distance": 0.05205731665026305, I want distance like this 1.2KM
我试过,但没有找到解决办法
3条答案
按热度按时间tsm1rwdh1#
更好的方法是使用php。sql计算非常昂贵。在某些原始计数中,差值可能为30秒,而不是0.04秒;)
钙离子()
那就用吧
YourModel::distance($lat, $lon, $km)->get()
20jt8wwn2#
为了获得
km
你应该使用111.045 km
每度(近似值)ztmd8pv53#
尝试下面的查询
$lat,$lng是变量。