⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jw_km.cpp

📁 用于计算从两地球经纬度之间的距离,其核心是计算赤道曲率和极曲率.
💻 CPP
字号:
#include <iostream.h>
#include <math.h>
#define pi 3.14159265 
void main()
{ 
	double a=6378137.,b=6356755.;
	double e;
	double cur_e,cur_n;
	double length_e,length_n;
	double temp1,temp2;
	double	longitude1;
	double	longitude2;
	double	latitude1;
	double	latitude2;
	double	m_longitude1;
	double	m_longitude2;
	double	m_latitude1;
	double	m_latitude2;
	double  m_juli;

/*	cin>>m_longitude1;
	cin>>m_latitude1;//>>endl;
	cin>>m_longitude2;
	cin>>m_latitude2;//>>endl;

	longitude1=((int)(m_longitude1/100))+(m_longitude1/100-((int)(m_longitude1/100)))*100/60;
	latitude1=((int)(m_latitude1/100))+(m_latitude1/100-((int)(m_latitude1/100)))*100/60;
	longitude2=((int)(m_longitude2/100))+(m_longitude2/100-((int)(m_longitude2/100)))*100/60;
	latitude2=((int)(m_latitude2/100))+((m_latitude2/100-(int)(m_latitude2/100)))*100/60;
*/
	latitude1=41+45/60+46.05/3600;
	longitude1=123+26/60+47.59/3600;
	latitude2=41+45/60+43.57/3600;
	longitude2=123+26/60+29.40/3600;
	temp1=sqrt(a*a-b*b);
	e=temp1/a;

	temp1=latitude1*pi/180;
	temp2=sqrt(1-e*e*sin(temp1)*sin(temp1));
	cur_e=temp2/(a*cos(temp1));
	
	//length_e=fabs(m_longitude1-m_longitude2)/cur_e;
	length_e=(longitude2-longitude1)*pi/180/cur_e;

	temp1=(latitude1+latitude2)*pi/(2*180);
	temp2=sqrt(1-e*e*sin(temp1)*sin(temp1));
	cur_n=temp2*temp2*temp2/(a*(1-e*e));
	
	//length_n=fabs(m_latitude1-m_latitude2)/cur_n;
	length_n=(latitude2-latitude1)*pi/180/cur_n;

//	m_angle=atan2(length_n,length_e)*180/pi; 
	cout<<length_e<<endl;
	cout<<length_n<<endl;
	m_juli=sqrt(length_e*length_e+length_n*length_n);
	cout<<m_juli<<endl;

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -