#define IN
#define OUT
main ()
{
double gpgga_lat=37.1559;
double gpgga_lon=127.0033;
double rX=0;
double rY=0;
cal(gpgga_lat, gpgga_lon, &rX, &rY);
//결과값 출력
printf(" rX [%5.4f]\n", rX);
printf(" rY [%5.4f]\n", rY);
}
int cal(IN double lat, IN double lon, OUT double *x, OUT double *y)
{
...............................
*x = m_North;
*y = m_East;
}
설치
apt-get install gnome-core-devel build-essential
소스 코드
#include <gtk/gtk.h>
void
hello (void)
{
g_print ("Hello World\n");
}
void
destroy (void)
{
gtk_main_quit ();
}
int
main (int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *button;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_signal_connect (GTK_OBJECT (window), "destroy",
GTK_SIGNAL_FUNC (destroy), NULL);
gtk_container_border_width (GTK_CONTAINER (window), 10);
button = gtk_button_new_with_label ("Hello World");
gtk_signal_connect (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC (hello), NULL);
gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC (gtk_widget_destroy),
GTK_OBJECT (window));
gtk_container_add (GTK_CONTAINER (window), button);
gtk_widget_show (button);
gtk_widget_show (window);
gtk_main ();
return 0;
}컴파일
gcc `pkg-config --cflags --libs gtk+-2.0` base.c
Makefile
GTK_INCLUDE = -I/usr/local/include
GTK_LIB = -L/usr/local/lib
X11_LIB = -L/usr/X11R6/lib
CC = gcc -g -Wall
CFLAGS = $(GTK_INCLUDE)
LDFLAGS = $(GTK_LIB) $(X11_LIB) -lgtk -lgdk -lglib -lX11 -lXext -lm
OBJS = helloworld.o
helloworld: $(OBJS)
# $(CC) $(GTK_LIB) $(X11_LIB) $(OBJS) -o helloworld $(LDFLAGS)
clean:
rm -f *.o *~ helloworld
참고 : http://blog.naver.com/hyj88zzang?Redirect=Log&logNo=95828284
위도
시 - 111km
분 - 1.85km
초 - 30.8m
경도
시 -88.8km
분 - 1.48km
초 - 25m
NMEA데이터에서 도,분,초, 계산법
ex) 3717.55
- 도 : 37
- 분 : 17분
- 초 : 0.55*60
------------------------------------------------
NMEA로 수신된 GPGGA의 위도, 경도 정보를 도,분,초로 계산 법이
$GPGGA,114455.532,3735.0079,N,12701.6446,E,1,03,7.9,48.8,M,19.6,M,0.0,0000*48
3735.0079 => 37 + 35.0079/60 -> 37.583465
4자리중 앞 2자리 37 -> 37도
4자리중 뒤 2자리 35 -> 35분
소수점 0.0079*60 = 0.474 -> 47 맞나요?
------------------------------------------------------------------
안녕하세요
(주)아센코리아입니다
답변을 드리면
37도 35분 0.47초를 나타내며 고객님의 말씀처럼
4자리 뒤에 숫자에 x60로 연산 하시면
0.47이 계산되며
47초가 아닌 0.47초로 나타냅니다
감사합니다
------------------------
:
해당 위도와 경도가 주어진 구역반경에 들어오는지 체크 한다.
아래는 위,경도를 통한 도분초를 계산하는 방법이며 마지막에 실제 함수를 작성하였다.
구글 거리계산기와 아래 함수를 비교하여 보니 정확한 계산치를 확인 할 수 있었다.
하지만, 아래 계산법은 우리 나라에 한해서만 적용되어야 할 듯 하다.( 서핑 하다 보니 이러저러한 이유로 지구 전체에 대한 것은 좀더 상세한 계산법이 필요 할 듯 하다)
lat : 위도 , lon: 경도.
ex>35.3036944
도 : 35
분 : 0.3036944 * 60 : int : 18
초 : (0.3036944 - 18/60)*3600 : 0.0036944*3600: 13.3
35도 18분 13.3초
A 지점 : 동경 127도 30분 20초 북위 : 36도 27분 08초
B 지점 : 동경 127도 29분 30초 북위 : 36도 28분 00초
C 지점 : 경도 00도 1분 10초 위도 : 00도 01분 08초
경도간 거리 : 0도*88.8 + 1분 * 1.48 + 10초 * 0.025 = 1.73km
위도간 거리 : 0도*111 + 1분 * 1.85 + 8초 * 0.031 = 2.10km
두지점간 거리 : 루트 (1.73^2 + 2.10^2) = 2.72km
#define DIV_VALUE 10000000
int distanceCmp(unsigned int lat1, // 기준 위도,
unsigned int lon1, // 기준 경도,
unsigned int lat2, // 대상 위도,
unsigned int lon2, // 대상 경도
unsigned int nCmpLat, // 위도간 거리
unsigned int nCmpLon // 경도간 거리
)
{
/*
위도,경도에 대한 절대값 계산
*/
double lon = lon1 > lon2 ? (lon1 - lon2)/(double)DIV_VALUE : (lon2-lon1)/(double)DIV_VALUE;
double lat = lat1 > lat2 ? (lat1 - lat2)/(double)DIV_VALUE : (lat2-lat1)/(double)DIV_VALUE;
/*
경도에 대한 도분초및 거리 계산
*/
int rad = (int)lon;
int min = (lon-rad)*60;
double sec = ((lon-rad) - min/60)*3600;
unsigned int lon_dist, lat_dist;
lon_dist = ((rad * 88.8) + (min*1.48) + (sec*0.025)) * 1000; // m단위
/*
위도에 대한 도분초및 거리 계산
*/
rad = (int)lat;
min = (lat-rad)*60;
sec = ((lat-rad) - min/60)*3600;
lat_dist = ((rad * 111) + (min*1.85) + (sec*0.031)) * 1000; // m단위
if( nCmpLat == 0 ){ // 원 형태의 구역반경
// 직선거리만을 조건으로 한다.
int realDist = sqrt((lon_dist*lon_dist)+(lat_dist*lat_dist));
if( nCmpLon >= realDist ){
return 1;
}
}else if( nCmpLat >= lat_dist && nCmpLon >= lon_dist ){ // 사각 형태의 구역반경
// 종/횡측 거리안에 들어오는지 확인한다.
return 1;
}
return 0;
}
[출처] 위도, 경도로 거리(구역) 구하기|작성자 서비




Comments List
"chenyujianbing"Yesterday the Ralph Lauren Outletmilitary training <a href="http://www.ralphlaurensoutlet.net"><strong>Ralph Lauren Outlet</strong></a>came back, the
son talked <a href="http://www.ralphlaurensoutlet.net"><strong>Ralph Lauren Shirts</strong></a> endlessly, the center was - - hearsay this semester trades teacher,
what but was disappointed, <a href="http://www.ralphlaurensoutlet.net"><strong>Ralph Lauren T-Shirt</strong></a> has not changed. Said this session of key Mr./Mrs. Ban
disposition might as well <a href="http://www.ralphlaurensoutlet.net"><strong>Ralph Lauren Polos</strong></a> last year's ordinary class
"chenyujianbing"Yesterday the Ralph Lauren Outletmilitary training <a href="http://www.ralphlaurensoutlet.net"><strong>Ralph Lauren Outlet</strong></a>came back, the
son talked <a href="http://www.ralphlaurensoutlet.net"><strong>Ralph Lauren
귀하의 훌륭한 기사를 공유하기위한 여러분 감사합니다. 난 정말 여기에서 귀하의 의견에 동의합니다
제가 처음으로 본 글을 쓰는, 또는에 의해를 uch. 난 아주 행복 해요, 당신은 좋은 작가 아르
제가 매우 흥미, 당신은 좀 더 imformation 얘기 좀 해주세요 감사합니다!