Это таблица ===> 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.
Как я могу сделать ? я понятия не имею. пожалуйста, посоветуйте мне. благодарю вас.
Попробуйте упорядочить по геопространственному расстоянию, а не напрямую по широте или долготе.
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 градус широты — 85,3 км для значений около 40 градусов;
1 градус долготы — 111,11 км
Таким образом, расстояние равно SQRT (($ latitude_difference * 85.3) ^ 2 + ($ longtitude_difference * 111,11) ^ 2)