当前位置:编程学习 > 网站相关 >>

球面上,已知一点C(x0,y0),求到A(x1,y1)和B(x2,y2)两点构成的直线的球面距离

如标题,x0,y0,x1,y1,x2,y2均为经纬度值,球半径为地球半径 经纬度 球面距离 --------------------编程问答-------------------- 学生问题?
666 --------------------编程问答-------------------- 百度求圆弧长度算法? --------------------编程问答-------------------- 假设两点的坐标分别为A(x1,y1),B(x2,y2),圆的半径为rAB=√[(x1-x2)^2+(y1-y2)^2]圆心角为θ那么sin(θ/2)=(AB/2)/r=√[(x1-x2)^2+(y1-y2)^2]/(2r)所以θ=2arcsin(√[(x1-x2)^2+(y1-y2)^2]/(2r))弧长=θr=2r*arcsin(√[(x1-x2)^2+(y1-y2)^2]/(2r)) --------------------编程问答-------------------- 晕……这不是求弧长的嘛! --------------------编程问答-------------------- 注意,有两个,球体是圆的! --------------------编程问答-------------------- 先把经纬度转三维坐标,然后求出直线的距离。已经一个圆的半径和弦长,就可以求出弧长 --------------------编程问答-------------------- 地球赤道上环绕地球一周走一圈共40075.04公里,而@一圈分成360°,而每1°(度)有60,每一度一秒在赤道上的长度计算如下:
  40075.04km/360°=111.31955km
  111.31955km/60=1.8553258km=1855.3m
  而每一分又有60秒,每一秒就代表1855.3m/60=30.92m
  任意两点距离计算公式为
  d=111.12cos{1/[sinΦAsinΦB十cosΦAcosΦBcos(λB—λA)]}
  其中A点经度,纬度分别为λA和ΦA,B点的经度、纬度分别为λB和ΦB,d为距离。
补充:企业软件 ,  地理信息系统
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,