Я использую формулу гаверсинуса для расчета расстояния, это работает нормально.
Но я хотел бы скрыть результаты, где расстояние больше, чем поле max_radius для этого результата.
Это моя схема базы данных.
Это запрос, который я использую. Вы можете видеть, что я жестко запрограммировал расстояние (50)
public function scopeFitsDistance($query, $lat, $lng)
{
return $query->select(\DB::raw("*,
( 3959 * acos( cos( radians(?) ) *
cos( radians( lat ) )
* cos( radians( lng ) - radians(?)
) + sin( radians(?) ) *
sin( radians( lat ) ) )
) AS distance"))
->addBinding($lat, 'select')
->addBinding($lng, 'select')
->addBinding($lat, 'select')
->having('distance', '<', 50); <----------
}
Но теперь мне интересно, как я могу скрыть результаты, где это расстояние ‹ max_radius, которое является полем внутри таблицы.
Следующее не возвращает никаких результатов
->having('distance', '<', 'max_radius');
Благодарю вас!