Как использовать php, чтобы получить данные из сортировки mysql от ближних к дальним ссылкам по широте и долготе?

Это таблица ===> user

_________________________________________________
|__id__|__username__|__lattitude__|__longtitude__|
|__1___|_____AA_____|__40.987161__|_-108.326066__|
|__2___|_____BB_____|__40.763628__|_-121.259775__|
|__3___|_____CC_____|__37.789420__|_-111.097575__|
|__4___|_____DD_____|__45.116211__|_-91.031848___|
|__5___|_____EE_____|__47.664373__|_-74.033259___|
|__6___|_____FF_____|__42.380345__|_-100.761695__|

Когда я остаюсь на широте 42.188975 долгота -102.239833 в NEBRASKA и нажмите кнопку. Я хочу получить данные из сортировки mysql от ближней до далекой привязки по широте и долготе и не далеко 2000 km.

Итак, результат будет таким

FF , AA , CC , DD , BB

Это покажет вам, когда использовать положение пользователя с Google Map.

Когда проверить расстояние между My position а также other user

Дистанция между my position а также user AA является : 523.53 km.

Дистанция между my position а также user BB является : 1589.58 km.

Дистанция между my position а также user CC является : 898.83 km.

Дистанция между my position а также user DD является : 957.95 km.

Дистанция между my position а также user EE является : 2289.06 km.

Дистанция между my position а также user FF является : 123.47 km.

Как я могу сделать ? я понятия не имею. пожалуйста, посоветуйте мне. благодарю вас.

-1

Решение

Попробуйте упорядочить по геопространственному расстоянию, а не напрямую по широте или долготе.

SELECT
U.*
FROM
User U
WHERE
st_distance_sphere(
POINT(U.longitude, U.latitude),
POINT(-102.239833, 42.188975)) <= 2000000
ORDER BY
st_distance_sphere(
POINT(U.longitude, U.latitude),
POINT(-102.239833, 42.188975)) ASC
1

Другие решения

1 градус широты — 85,3 км для значений около 40 градусов;
1 градус долготы — 111,11 км

Таким образом, расстояние равно SQRT (($ latitude_difference * 85.3) ^ 2 + ($ longtitude_difference * 111,11) ^ 2)

0

По вопросам рекламы [email protected]