집 >데이터 베이스 >MySQL 튜토리얼 >위도와 경도를 사용하여 두 점 사이의 거리를 계산하는 방법은 무엇입니까?
두 점을 기준으로 거리 계산: 위도와 경도
위도와 경도를 사용하여 점 사이의 거리를 결정하는 것은 일반적인 GIS 작업입니다. 지정된 반경 내의 점을 찾으려면 수학 공식과 SQL 쿼리를 활용할 수 있습니다.
거리 계산 공식
한 가지 접근 방식은 Haversine 공식을 사용하는 것입니다. 구 위의 두 점 사이의 거리:
<code class="python">def get_distance(lat1, lon1, lat2, lon2, unit='Mi'): theta = lon1 - lon2 distance = (math.sin(math.radians(lat1)) * math.sin(math.radians(lat2))) + \ (math.cos(math.radians(lat1)) * math.cos(math.radians(lat2)) * \ math.cos(math.radians(theta))) distance = math.acos(distance) distance = math.degrees(distance) distance = distance * 60 * 1.1515 if unit == 'Km': distance = distance * 1.609344 return round(distance, 2)</code>
반경 검색을 위한 SQL 쿼리
또 다른 옵션은 거리 공식과 함께 MySQL 쿼리를 사용하는 것입니다.
<code class="sql">SELECT *, (((acos(sin((".$latitude."*pi()/180)) * sin((`Latitude`*pi()/180))+cos((".$latitude."*pi()/180)) * cos((`Latitude`*pi()/180)) * cos(((".$longitude."- `Longitude`)* pi()/180))))*180/pi())*60*1.1515) as distance FROM `MyTable` HAVING distance >= ".$distance.";</code>
이러한 방법을 적용하면 점 사이의 거리를 효율적으로 계산하고, 주어진 위치에서 원하는 반경 내에 있는 점을 찾을 수 있습니다.
위 내용은 위도와 경도를 사용하여 두 점 사이의 거리를 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!