получить широты и долготы в пределах заданного радиуса и от заданной широты и долготы в метрах - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь получить все возможные широты и долготы в пределах нескольких метров от заданной широты и долготы. Вот запрос MySQL, который я нашел. Но следующий проверяет расстояние в км. Я хочу в метрах. Может кто-нибудь помочь, как изменить запрос так, чтобы я получал напрямую в определенных метрах, а не в КМ?

SELECT id, location_name,
(6371 * acos( cos( radians(@myLat) ) * cos( radians(latitude) ) * cos( radians(longitude) - radians(@myLng)) + sin(radians(@myLat)) * sin(radians(latitude)) )) as distance FROM sample.locations 
HAVING distance <= 50

Здесь 50 - это КМ, а не метры. Как дать в метрах? Я не всегда могу конвертировать метры в км в этом запросе, так как мои данные в метрах. Может ли кто-нибудь помочь?

1 Ответ

0 голосов
/ 16 мая 2018

6371 - радиус Земли в км.Измените это на метры.From wikipedia

Для Земли средний радиус составляет 6 371,0088 км (3 958,7613 миль). [ 16 ]

6 371,0088км = 6 371 008,8 м

SELECT id, location_name,
(6371008.8 * acos( cos( radians(@myLat) ) * cos( radians(latitude) ) * cos( radians(longitude) - radians(@myLng)) + sin(radians(@myLat)) * sin(radians(latitude)) )) as distance FROM sample.locations 
HAVING distance <= 50
...