Notice
Link
- Today
- Total
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- c언어
- reactnative
- 스크롤적용
- group by
- mybatis exception
- 시간대별 통계
- Back 키 클릭 감지
- kill -9
- rn
- CentOS
- 파티션 빠른 삭제
- 피쉬랜드
- sql exception
- SQL
- springboot 재가동
- 가변영역 스크롤
- 터치좌표 view
- vc++
- MariaDB
- 말줌임 CSS
- springboot
- 코드로 서버 재실행
- Activity 전체화면
- MFC
- pid 찾아 kill
- ffmpeg
- 시간대 테이블생성
- view 획득
- CSS
- MySQL
Archives
개발은 하는건가..
GPS 위도, 경도 위치 간 거리 계산 본문
반응형
geodatasource 에서 제공하는 오픈소스를 이용해서 두 지점간의 거리를 쉽게 계산 가능.
거리 = distance(지점1의 위도, 지점1의 경도, 지점2의 위도, 지점2의 경도, 거리 단위);
거리 단위 : 'M' = 마일, 'K' = 킬로미터, 'N' = 해리
/*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*:: :*/
/*:: This routine calculates the distance between two points (given the :*/
/*:: latitude/longitude of those points). It is being used to calculate :*/
/*:: the distance between two locations using GeoDataSource(TM) products. :*/
/*:: :*/
/*:: Definitions: :*/
/*:: South latitudes are negative, east longitudes are positive :*/
/*:: :*/
/*:: Passed to function: :*/
/*:: lat1, lon1 = Latitude and Longitude of point 1 (in decimal degrees) :*/
/*:: lat2, lon2 = Latitude and Longitude of point 2 (in decimal degrees) :*/
/*:: unit = the unit you desire for results :*/
/*:: where: 'M' is statute miles (default) :*/
/*:: 'K' is kilometers :*/
/*:: 'N' is nautical miles :*/
/*:: Worldwide cities and other features databases with latitude longitude :*/
/*:: are available at https://www.geodatasource.com :*/
/*:: :*/
/*:: For enquiries, please contact sales@geodatasource.com :*/
/*:: :*/
/*:: Official Web site: https://www.geodatasource.com :*/
/*:: :*/
/*:: GeoDataSource.com (C) All Rights Reserved 2022 :*/
/*:: :*/
/*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
#include <math.h>
#define pi 3.14159265358979323846
/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*:: Function prototypes :*/
/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
double deg2rad(double);
double rad2deg(double);
double distance(double lat1, double lon1, double lat2, double lon2, char unit) {
double theta, dist;
if ((lat1 == lat2) && (lon1 == lon2)) {
return 0;
}
else {
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);
dist = dist * 60 * 1.1515;
switch(unit) {
case 'M':
break;
case 'K':
dist = dist * 1.609344;
break;
case 'N':
dist = dist * 0.8684;
break;
}
return (dist);
}
}
/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*:: This function converts decimal degrees to radians :*/
/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
double deg2rad(double deg) {
return (deg * pi / 180);
}
/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*:: This function converts radians to decimal degrees :*/
/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
double rad2deg(double rad) {
return (rad * 180 / pi);
}
'C, C++, MFC' 카테고리의 다른 글
[MFC] CRichEditCtrl 텍스트 컬러 지정 (0) | 2023.05.15 |
---|---|
[WinApi] 조이스틱 사용 방법 (0) | 2023.04.26 |
OpenSSL VC++ 용 빌드하기 (0) | 2023.03.27 |
[MFC] Custom slide control (0) | 2022.11.29 |
[MFC] 배율에 따라 영향 받지 않도록 컨트롤 배치 (0) | 2022.11.09 |
Comments