Я прочитал все связанные вопросы к этой проблеме, но не смог найти решение.
Я сохранил координаты в mysql colum type point , в модели laravel я сохранил вот так
use Spatial;
protected $spatial = ['location'];
Чтобы получить координаты, я могу сделать это
$model->getCoordinates();
Но я хочу выбрать все эти записи на расстоянии 10 км, как я могу создать красноречивый запрос для этого?
Примечание: в моей таблице нет столбцов lat, lon, поэтому этот запрос не будет работать
$results = DB::select(DB::raw('SELECT id, ( 3959 * acos( cos( radians(' . $lat . ') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(' . $lng . ') ) + sin( radians(' . $lat .') ) * sin( radians(lat) ) ) ) AS distance FROM articles HAVING distance < ' . $distance . ' ORDER BY distance') );
Обновлено: я использовал laravel Voyager для сохранения местоположений на карте, здесь ссылка