Как правильно сформулировать запрос «многое-ко-многим» с геолокацией к БД через Laravel framework?

Здравствуйте, возникла проблема с правильным формированием запросы к БД

Вкратце, у нас есть модель " Сценарии" которая содержит несколько id модели " Точки". Одна точка может принадлежать множеству сценариев.

Модель "Точки" содержит такие поля как "долгота" и "широта"

Мне необходимо получить все сценарии, которые находятся рядом с определенной геоточкой. Как правильно сформулировать запрос или преобразовать исходный? не хочется вручную в цикле перебирать все точки и получать для них сценарии в самом коде.

сейчас точки получаются следующим образом:
$radius = 100;
$max_distance = 20;
$lat = {your_lat};
$lng = {your_lng};

 return $points = DB::select(
               'SELECT * FROM
                    (SELECT id, name, address, phone, latitude, longitude, (' . $radius . ' * acos(cos(radians(' . $lat . ')) * cos(radians(latitude)) *
                    cos(radians(longitude) - radians(' . $lng . ')) +
                    sin(radians(' . $lat . ')) * sin(radians(latitude))))
                    AS distance
                    FROM points) AS distances
                WHERE distance < ' . $max_distance . '
                ORDER BY distance
                OFFSET 0
                LIMIT 20;
            ');
  • Вопрос задан
  • 96 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Badoo Development Москва
от 140 000 до 180 000 руб.
Badoo Development Москва
от 180 000 до 250 000 руб.
21 июля 2018, в 15:34
6000 руб./за проект
21 июля 2018, в 15:32
1000 руб./за проект