SQL закон харвестера для получения ближайших координат вопрос

#php #laravel

#php #laravel

Вопрос:

в моем приложении я хочу показать ближайшие места из координат центра карты, после поиска решений я нашел необработанный SQL-запрос, который я мог бы использовать в своем приложении laravel:

Это мой метод:

 $venues = Venue::select(DB::raw('*, ( 6367 * acos( cos( radians('.$latitude.') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians('.$longitude.') )   sin( radians('.$latitude.') ) * sin( radians( lat ) ) ) ) AS distance'))
    ->having('distance', '<', 25)
    ->orderBy('distance')
    ->get();
  

Он работает отлично, но прямо здесь:

 ->having('distance', '<', 25)
  

Я не знаю, что это за измерение 25, это километры, мили, очевидно, это не метры, кто-нибудь может мне помочь?

Ответ №1:

Эта константа 6367 выглядит как приближение к радиусу Земли в километрах. Похоже, что ваши единицы измерения — это километры.