У меня есть таблица базы данных со списком ресторанов, включая их названия, широты и долготы.Я хотел бы выбрать все рестораны, которые находятся на определенном расстоянии от моего текущего местоположения.текущее местоположение определяется в php-файле (сейчас я просто использую статический широту и долготу).я нашел код для расчета расстояния:
function findDist($lat, $lng){
$currLat = 33.777563;
$currLng = -84.389959;
$currLat = deg2rad ($currLat);
$sincurrLat = sin ($currLat);
$lat = deg2rad ($lat);
$currLng = deg2rad ($currLng);
$lng = deg2rad ($lng);
return round((7926 - 26 * $sincurrLat) * asin (min (1, 0.707106781186548 * sqrt ((1 - (sin ($lat) * $sincurrLat) - cos ($currLat) * cos ($lat) * cos ($lng - $currLng))))),4);
}
но как мне включить это в мой запрос выбора?я попробовал это:
$query = "SELECT *
FROM
eateries E
WHERE
EXISTS
(
SELECT *
FROM
eateries_hours EH, eateries_type ET
WHERE
EH.eateries_id = E.id AND ET.eateries_id = E.id
AND findDist(E.lat, E.lng) <= .5
)";
но, конечно, это не работает, потому что он не распознает функцию.Могу ли я сначала выполнить отдельный запрос только для лат и lng, вычислить расстояния, а затем как-нибудь объединить их с вышеуказанным запросом?есть идеи?
спасибо.