利用GPS实现空间两点测距功能
0赞

GPS接收机给出的经纬度都是度分形式, 如纬度:4544.1122表示纬度为45度44.1122分,转换为度为单位应将44.1122除以60后加到45度上, 下面程序段中包含了度分转换及计算距离的c代码。
ARC = 3.1415926/180.0;
intlat1 = floor(lat1/100.0);
intlat2 = floor(lat2/100.0);
intlon1 = floor(lon1/100.0);
intlon2 = floor(lon2/100.0);
x1=(lat1/100.0-intlat1)*10.0/6.0 + (double)intlat1 ;
y1=(lon1/100.0-intlon1)*10.0/6.0 + (double)intlon1 ;
x2=(lat2/100.0-intlat2)*10.0/6.0 + (double)intlat2 ;
y2=(lon2/100.0-intlon2)*10.0/6.0 + (double)intlon2 ;
c1 = sin(x1*ARC)*sin(x2*ARC);
c2 = cos(x1*ARC)*cos(x2*ARC)*cos((y1-y2)*ARC);
c3 = c1+c2;
Distance = 6371.004*acos(c3);
