資源簡介
已知兩點經緯度,求距離和方位.Qt中利用C和C++共同實現

代碼片段和文件信息
#include?“coordinate.h“
#include?
/*****************************************************************
【功能說明】坐標轉換將AIS得到的經緯度轉換為本船為中心的級坐標,距離和方位
【參數說明】形參一為指向本船的指針形參二為指向目標船的指針
A為方位角,L為距離
*****************************************************************/
void?coordinate::Distance(ShipAIS?*s?ShipAIS?*a)
{
????float?cosc=cos((90-a->Lat)*M_PI/180)*cos((90-s->Lat)*M_PI/180)+
????????????sin((90-a->Lat)*M_PI/180)*sin((90-s->Lat)*M_PI/180)*cos((a->Lon-s->Lon)*M_PI/180);
????float?sinc=sqrt(1-pow(cosc2));
????float?A=asin(sin((90-a->Lat)*M_PI/180)*sin((a->Lon-s->Lon)*M_PI/180)/sinc);
?????A=A*180/M_PI;
?????if(a->Lat>=s->Lat)
?????{
????????if(a->Lon>=s->Lon)
?????????{
????????????A=A;
?????????}
?????????else
?????????{
?????????????A=360+A;
?????????}
?????}
?????else
?????{
?????????A=180-A;
?????}
????float?c=acos(cosc);
????float?L=6378.137*c;
???qDebug(“L=%0.6f“L);
???qDebug(“A=%0.6f“A);
????qDebug()< }
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????381??2015-01-22?20:08??02AISandRADAR\02AISandRADAR.pro
?????文件??????13675??2015-01-22?20:08??02AISandRADAR\02AISandRADAR.pro.user
?????文件???????1091??2015-01-22?20:08??02AISandRADAR\coordinate.cpp
?????文件????????212??2015-01-22?20:08??02AISandRADAR\coordinate.h
?????文件????????178??2015-01-22?20:08??02AISandRADAR\main.cpp
?????文件????????555??2015-01-22?20:08??02AISandRADAR\mainwindow.cpp
?????文件????????392??2015-01-22?20:08??02AISandRADAR\mainwindow.h
?????文件???????3276??2015-01-22?20:08??02AISandRADAR\mainwindow.ui
?????文件????????235??2015-01-22?20:08??02AISandRADAR\ShipInformation.h
?????目錄??????????0??2015-01-22?20:08??02AISandRADAR
-----------?---------??----------?-----??----
????????????????19995????????????????????10
評論
共有 條評論