집 >데이터 베이스 >MySQL 튜토리얼 >MySQL에서 위도와 경도를 사용하여 두 위치 사이의 거리를 어떻게 계산할 수 있습니까?
MySQL에서 위도와 경도를 사용하여 교차점 거리 계산
종종 위도와 경도를 기준으로 두 위치 사이의 거리를 결정해야 하는 경우가 있습니다. 경도 좌표. 이는 인근 편의 시설 찾기, 이동 거리 계산 등 다양한 시나리오에서 일반적인 작업입니다. 이 거리를 정확하게 계산하기 위해 MySQL은 강력한 솔루션을 제공합니다.
도시 이름, 위도 및 경도 값이 포함된 테이블이 있는 시나리오를 고려해 보겠습니다.
-------------------------------------------- | id | city | Latitude | Longitude | -------------------------------------------- | 1 | 3 | 34.44444 | 84.3434 | -------------------------------------------- | 2 | 4 | 42.4666667 | 1.4666667 | -------------------------------------------- | 3 | 5 | 32.534167 | 66.078056 | -------------------------------------------- | 4 | 6 | 36.948889 | 66.328611 | -------------------------------------------- | 5 | 7 | 35.088056 | 69.046389 | -------------------------------------------- | 6 | 8 | 36.083056 | 69.0525 | -------------------------------------------- | 7 | 9 | 31.015833 | 61.860278 | --------------------------------------------
도시 3과 도시 7 사이의 거리를 계산합니다. 제공된 SQL 쿼리를 사용하여 거리를 킬로미터 단위로 검색할 수 있습니다.
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
쿼리 구면 코사인 법칙을 활용하여 킬로미터로 표시되는 거리를 계산합니다.
효율성과 정확성을 위해 다음과 같은 최신 접근 방식을 사용하는 것이 가장 좋습니다.
select ST_Distance_Sphere( point(-87.6770458, 41.9631174), point(-73.9898293, 40.7628267))
적합한 MySQL 기능을 사용하면 지구상의 두 지점 사이의 거리를 정확하게 결정할 수 있으므로 광범위한 지리적 위치 관련 요구 사항을 해결할 수 있습니다.
위 내용은 MySQL에서 위도와 경도를 사용하여 두 위치 사이의 거리를 어떻게 계산할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!