已知经纬度计算两点间距离
来源:互联网 发布:php常用魔术方法 编辑:程序博客网 时间:2024/05/05 08:12
#低精度公
floatgeodist(L1, phi1, L2, phi2)
{
Ri =6371
d =( Ri*acos(sin(phi1*(pi/180))*sin(phi2*(pi/180))+cos(phi1*(pi/180))*cos(phi2*(pi/180))*cos((L1- L2)*(pi/180))))
res <-round(d,3)
return(res)
}
第二种高精度方案,高精度的方案的误差低于+_50m. 采用较为精密的公式,考虑到地球是一个椭球,a是地球的长轴,f是扁率,用如下公式计算
float Ctest1Dlg:: Caldistance(float lastlng,float lastlat,float curlng,float curlat)//返回的为米
{
double EarthRadiu = 6378.14;//地球半径
double temp = 1/298.257;
double F = (lastlat+curlat)/2;
double G = (lastlat - curlat)/2;
double ramda = (lastlng - curlng)/2;
double pi= 3.1415926;//pi
double S= (pow(sin(G*pi/180),2))*(pow(cos(ramda*pi/180),2)) + (pow(cos(F*pi/180),2))*(pow(sin(ramda*pi/180),2));
double C = (pow(cos(G*pi/180),2))*(pow(cos(ramda*pi/180),2)) + (pow(sin(F*pi/180),2))*(pow(sin(ramda*pi/180),2));
double omega = atan(sqrt(S/C));
double R= sqrt(S*C)/omega;
double D = 2*omega*EarthRadiu ;
double H1= (3*R-1)/(2*C);
double H2 = (3*R+1)/(2*S);
double res= 1000*D*(1 + temp*H1*(pow(sin(F*pi/180),2))*(pow(cos(G*pi/180),2)) - temp*H2*(pow(cos(F*pi/180),2))*(pow(sin(G*pi/180),2)));
return res;
}
- 已知经纬度计算两点间距离
- 根据经纬度计算两点间距离
- 根据经纬度计算两点间距离
- Android-根据两点间经纬度坐标,计算两点间距离
- Android-依据两点间经纬度坐标,计算两点间距离
- C# 已知经纬度计算两点距离函数
- 计算两点间距离
- 计算两点间距离
- 计算两点间距离
- 计算两点间距离
- 计算两点间距离
- 计算两点间距离
- 计算两点间距离
- java-经纬度有关的计算(半径内的经纬度范围和两点间距离)
- 传入当前的经纬度和目标经纬度,计算两点间距离
- 已知两点经纬度,计算两点间的距离
- 获取两点(经纬度表示)间距离
- 获取两点(经纬度表示)间距离
- 导出到EXCEL---附注
- Effective Java —— 保护性拷贝
- 汽车车窗贴膜下面的胶怎样去除
- 数学中希腊字母发音以及常用符号公式读法
- VxWorks启动后系统自带的任务
- 已知经纬度计算两点间距离
- 判断程序实例是否已经运行的N种方法
- 烟花三月
- SOCKET相关
- linux判断文件是否存在
- C#Random产生随机数重复问题
- JAVA语言对国际化支持的原理
- jquery的函数介绍和使用
- startActivityForResult()