Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
Tags
- 비동기호출
- 자바스크립트
- Ajax
- 페이지전환효과
- .htaccess
- MySQL
- 글자수제한
- 보안인증서
- SSL
- 정규식
- post_type
- 디지털 정부서비스ui/ux
- virsualhost
- 우분투 npm 설치
- 배열
- 날짜변환
- 우분투
- selinux
- iframe
- 리사이즈
- 글자 수 제한
- Vanilla JS
- 날짜비교
- 정부 서비스 가이드라인
- 301 리다이렉트
- 애니메이트
- ip직접접근차단
- 구글뷰어
- JS
- JavaScript
Archives
- Today
- Total
더 나은 프로그래머가 되자
GPS 좌표로 거리 구하기, 지도 거리 측정 본문
MYSQL을 이용한 거리 계산 방법
현재위치
위도 : nowLat
경도 : nowLng
지정위치
위도 : setLat
경도 : set Lng
6371은 지구의 반지름이다. 단위는 KM
> select (6371 * acos( cos( radians(nowLat) ) * cos( radians( setLat ) ) * cos( radians( setLng ) - radians(nowLng) ) + sin( radians(nowLat) ) * sin( radians( setLat ) ) ) ) as distance;
> select ROUND(6371 * acos( cos( radians(37.486273) ) * cos( radians( 35.177286 ) ) * cos( radians( 126.900247 ) - radians(126.900247) ) + sin( radians(37.486273) ) * sin( radians( 35.177286 ) ) ), 2) as distance;
PHP를 이용한 거리 계산 방법
>
function geoDistance($lat1, $lon1, $lat2, $lon2, $unit="k")
{
$theta = $lon1 - $lon2;
$dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));
$dist = acos($dist);
$dist = rad2deg($dist);
$miles = $dist * 60 * 1.1515;
$unit = strtolower($unit);
if ($unit == "k") {
return ($miles * 1.609344);
} else {
return $miles;
}
}
// 양재
$a1 = 37.47163412599279;
$a2 = 127.02677155082887;
// 우만동
$b1 = 37.284357977075565;
$b2 = 127.03281619405365;
// 수서
$c1 = 37.4889123433992;
$c2 = 127.10502769792124;
echo geoDistance($a1,$a2,$c1,$c2);
'언어 > PHP' 카테고리의 다른 글
| insert한 최종값 가져오기 mysql_insert_id (0) | 2015.07.30 |
|---|---|
| 배열값 정렬 및 배열 구조 출력하기,print_r,var_dump,rsort,sort (0) | 2015.07.08 |
| 캐시관련 링크,cache (0) | 2015.04.29 |
| 브라우저 언어 체크 HTTP_ACCEPT_LANGUAGE (0) | 2015.04.16 |
| 올림,반올림,내림 (0) | 2015.04.13 |
Comments
distance.pdf
gps거리계산.doc