반응형
가능한 중복 :
나는이 질문이 아마도 여러 번 질문을 받았을 것이라는 것을 알고 있으며, 나는 많은 연구를했고 특정한 일에 대한 도움이 필요합니다.
양식이 있고 사용자가 경도와 위도를 입력하고 경도와 위도가 포함 된 테이블이있는 데이터베이스가 있다고 가정 해 보겠습니다. 해당 테이블에서 반경 15 마일 이내에있는 지점을 어떻게 검색합니까?
해결 방법
두 점 사이의 거리를 계산하는 공식을 사용할 수 있습니다. 예를 들면 :
function get_distance($latitude1, $longitude1, $latitude2, $longitude2, $unit = 'Mi') {
$theta = $longitude1 - $longitude2;
$distance = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) +
(cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) *
cos(deg2rad($theta)));
$distance = acos($distance);
$distance = rad2deg($distance);
$distance = $distance * 60 * 1.1515;
switch($unit) {
case 'Mi':
break;
case 'Km' :
$distance = $distance * 1.609344;
}
return (round($distance,2));
}
다음과 같이 할 수도 있습니다.
$query = "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.";
참조 페이지 https://stackoverflow.com/questions/8599200
반응형
'MySql' 카테고리의 다른 글
MySQL mysql에서 n 번째 행을 어떻게 선택합니까? (0) | 2020.09.25 |
---|---|
MySQL "where"절의 mysql 하위 쿼리 결과 (0) | 2020.09.25 |
MySQL 명령 줄의 데이터베이스에서 스크립트를 실행하는 방법 (MySQL Server) (0) | 2020.09.25 |
MySQL 클릭 PHP, JQUERY, MYSQL에 데이터베이스에서 더 많은 표시 (0) | 2020.09.25 |
MySQL 각 개별 후보 ID의 가장 최근 날짜가있는 행에서 데이터를 반환합니다. (0) | 2020.09.24 |
댓글