집 >데이터 베이스 >MySQL 튜토리얼 >MySQL에서 위도와 경도를 사용하여 두 점 사이의 거리를 계산하는 방법은 무엇입니까?
MySQL에서 위도와 경도를 사용하여 두 점 사이의 거리 계산
위도와 경도를 고려하여 두 점 사이의 거리를 결정하기 위해 MySQL은 다음을 제공합니다. 강력한 공식. 이 시나리오에서는 한 명의 사용자가 도시 3에 위치하고 있으며 도시 7과 같은 다른 도시의 사용자까지의 거리를 찾으려고 합니다.
해결책은 다음 쿼리를 활용하는 것입니다.
SELECT a.city AS from_city, b.city AS to_city, 111.111 * DEGREES(ACOS(LEAST(1.0, COS(RADIANS(a.Latitude)) * COS(RADIANS(b.Latitude)) * COS(RADIANS(a.Longitude - b.Longitude)) + SIN(RADIANS(a.Latitude)) * SIN(RADIANS(b.Latitude))))) AS distance_in_km FROM city AS a JOIN city AS b ON a.id <> b.id WHERE a.city = 3 AND b.city = 7
이 쿼리는 구면의 두 점 사이의 거리를 킬로미터 단위로 계산하는 구면 코사인 법칙 공식을 사용합니다. 테이블 자체를 결합하여 계산을 위해 두 개의 좌표 쌍을 검색할 수 있습니다.
이 쿼리의 결과는 도시 3과 도시 7 사이의 거리를 킬로미터 단위로 제공합니다. 법정 마일 단위의 거리를 얻으려면 상수 111.1111을 69.0으로 바꾸면 됩니다.
가까운 지점을 효율적으로 찾으려면 ST_Distance_Sphere 함수를 사용하는 것이 좋습니다.
select ST_Distance_Sphere( point(-87.6770458, 41.9631174), point(-73.9898293, 40.7628267))
또는 경계 상자 계산을 통해 다음을 수행할 수 있습니다. 검색을 더욱 최적화하기 위해 사용됩니다.
위 내용은 MySQL에서 위도와 경도를 사용하여 두 점 사이의 거리를 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!