이 기사의 예에서는 PHP에서 바이두 지도 좌표 간의 거리를 계산하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 자세한 내용은 다음과 같습니다.
다음은 인터넷에 있는 코드입니다. 사용 시 약간의 수정이 필요합니다
첫 번째 기능은 범위를 얻는 것입니다. 매개변수는 위도, 경도 및 반경입니다
두 번째 기능은 좌표 거리를 계산하는 것입니다
<?php define('PI',3.1415926535898); define('EARTH_RADIUS',6378.137); //计算范围,可以做搜索用户 function GetRange($lat,$lon,$raidus){ //计算纬度 $degree = (24901 * 1609) / 360.0; $dpmLat = 1 / $degree; $radiusLat = $dpmLat * $raidus; $minLat = $lat - $radiusLat; //得到最小纬度 $maxLat = $lat + $radiusLat; //得到最大纬度 //计算经度 $mpdLng = $degree * cos($lat * (PI / 180)); $dpmLng = 1 / $mpdLng; $radiusLng = $dpmLng * $raidus; $minLng = $lon - $radiusLng; //得到最小经度 $maxLng = $lon + $radiusLng; //得到最大经度 //范围 $range = array( 'minLat' => $minLat, 'maxLat' => $maxLat, 'minLon' => $minLng, 'maxLon' => $maxLng ); return $range; } //获取2点之间的距离 function GetDistance($lat1, $lng1, $lat2, $lng2){ $radLat1 = $lat1 * (PI / 180); $radLat2 = $lat2 * (PI / 180); $a = $radLat1 - $radLat2; $b = ($lng1 * (PI / 180)) - ($lng2 * (PI / 180)); $s = 2 * asin(sqrt(pow(sin($a/2),2) + cos($radLat1)*cos($radLat2)*pow(sin($b/2),2))); $s = $s * EARTH_RADIUS; $s = round($s * 10000) / 10000; return $s; }
더 많은 PHP 관련 콘텐츠에 관심이 있는 독자는 이 사이트의 특별 주제를 확인할 수 있습니다. "PHP 배열(Array) 작업 기술의 종합 모음", "PHP 수학 요약 조작 기술", "PHP 정규식 사용법 요약", "PHP+ajax 기술 및 응용 요약", "PHP 조작 및 연산자 사용법 요약 ", "PHP 네트워크 프로그래밍 기술 요약", "PHP 기본 구문 튜토리얼 소개", "PHP 날짜 및 시간 사용법 요약" , "PHP 객체지향 프로그래밍 입문 튜토리얼", "php 문자열(문자열) 사용법 요약", "php + mysql 데이터베이스 작업 입문 튜토리얼" 및 "php 공통 데이터베이스 운용 스킬 요약》
이 기사가 PHP 프로그래밍에 종사하는 모든 사람에게 도움이 되기를 바랍니다.