Как получить расстояние до мест из бд с учетом долготы и широты

Я хочу выбрать места из БД в радиусе 10 км от того места, где я нахожусь. Например, когда я выбираю Location_1 в моем образце БД, я хочу получить из БД местоположения, подобные приведенному выше условию. Сейчас использую Yii2.

Это образец моей таблицы БД с именем "места"

ID          Location        Longitude   Latitude
----------- ---------- ---------- -----------
1           Location_1      30.8505081  14.2575487
2           Location_2      30.828072   14.1554811
3           Location_3      30.850763   14.250705
4           Location_4      30.8484719  14.252653

Теперь я понятия не имею, как перейти от долготы и широты к расстоянию от моего текущего местоположения.

Вопрос перефразирован, апелляции удалены

Corion 26.10.2018 08:29
1
1
62
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуй это. Широта местоположения 14,2575487 и долгота 30,8505081 от того места, где вы найдете результаты из таблицы, в пределах 10 км.

SELECT *,ROUND(  1.609 * 3956 * 2  * ASIN(SQRT(POWER(SIN((14.2575487 - ABS(Latitude)) * PI()/180 / 2),2) + COS(14.2575487 * PI()/180 ) * COS(ABS(Latitude) * PI()/180) * POWER(SIN((30.8505081 - Longitude ) * PI()/180 / 2), 2) )),0) AS distance FROM places WHERE 1=1  HAVING distance<= 10 

Рад помочь вам.

Madhur Sharma 21.11.2018 12:40

Другие вопросы по теме