计算两个经纬度之间的距离

求计算两个经纬度之间的距离,如:112.191946,32.120289跟112.196852,32.121876知道这两个坐标,算出这两个坐标相隔的距离,计算公式。别在... 求计算两个经纬度之间的距离,
如:112.191946,32.120289 跟 112.196852,32.121876 知道这两个坐标,算出这两个坐标相隔的距离,计算公式。
别在网络复制,复制的儿子没根,女儿没洞。没一个能用的
自己算出来了,没答案可以
展开
 我来答
盖辜苟
2018-07-11 · TA获得超过12.5万个赞
知道答主
回答量:41
采纳率:100%
帮助的人:2.3万
展开全部

地球是一个近乎标准的椭球体,它的赤道半径为6378.140千米,极半径为 6356.755千米,平均半径6371.004千米。如果我们假设地球是一个完美的球体,那么它的半径就是地球的平均半径,记为R。

如果以0度经线为基 准,那么根据地球表面任意两点的经纬度就可以计算出这两点间的地表距离(这里忽略地球表面地形对计算带来的误差,仅仅是理论上的估算值)。

设第一点A的经 纬度为(LonA, LatA),第二点B的经纬度为(LonB, LatB),按照0度经线的基准,东经取经度的正值(Longitude),西经取经度负值(-Longitude),北纬取90-纬度值(90- Latitude),南纬取90+纬度值(90+Latitude),则经过上述处理过后的两点被计为(MLonA, MLatA)和(MLonB, MLatB)。那么根据三角推导,可以得到计算两点距离的如下公式:

C = sin(MLatA)*sin(MLatB)*cos(MLonA-MLonB) + cos(MLatA)*cos(MLatB)

Distance = R*Arccos(C)*Pi/180

这里,R和Distance单位是相同,如果是采用6371.004千米作为半径,那么Distance就是千米为单位,如果要使用其他单位,比如mile,还需要做单位换算,1千米=0.621371192mile

如果仅对经度作正负的处理,而不对纬度作90-Latitude(假设都是北半球,南半球只有澳洲具有应用意义)的处理,那么公式将是:

C = sin(LatA)*sin(LatB) + cos(LatA)*cos(LatB)*cos(MLonA-MLonB)

Distance = R*Arccos(C)*Pi/180

以上通过简单的三角变换就可以推出。

如果三角函数的输入和输出都采用弧度值,那么公式还可以写作:

C = sin(LatA*Pi/180)*sin(LatB*Pi/180) + cos(LatA*Pi/180)*cos(LatB*Pi/180)*cos((MLonA-MLonB)*Pi/180)

Distance = R*Arccos(C)*Pi/180

也就是:

C = sin(LatA/57.2958)*sin(LatB/57.2958) + cos(LatA/57.2958)*cos(LatB/57.2958)*cos((MLonA-MLonB)/57.2958)

Distance = R*Arccos(C) = 6371.004*Arccos(C) kilometer = 0.621371192*6371.004*Arccos(C) mile = 3958.758349716768*Arccos(C) mile

在实际应用当中,一般是通过一个个体的邮政编码来查找该邮政编码对应的地区中心的经纬度,然 后再根据这些经纬度来计算彼此的距离,从而估算出某些群体之间的大致距离范围(比如酒店旅客的分布范围-各个旅客的邮政编码对应的经纬度和酒店的经纬度所 计算的距离范围-等等),所以,通过邮政编码查询经纬度这样一个数据库是一个很有用的资源。

附:C#代码:

private const double EARTH_RADIUS = 6378.137;//地球半径

private static double rad(double d)

{

return d * Math.PI / 180.0;

}

public static double GetDistance(double lat1, double lng1, double lat2, double lng2)

{

double radLat1 = rad(lat1);

double radLat2 = rad(lat2);

double a = radLat1 - radLat2;

double b = rad(lng1) - rad(lng2);

double s = 2 * Math.Asin(Math.Sqrt(Math.Pow(Math.Sin(a/2),2) +

Math.Cos(radLat1)*Math.Cos(radLat2)*Math.Pow(Math.Sin(b/2),2)));

s = s * EARTH_RADIUS;

s = Math.Round(s * 10000) / 10000;

return s;

}

拓展资料:

经纬度是经度与纬度的合称组成一个坐标系统。称为地理坐标系统,它是一种利用三度空间的球面来定义地球上的空间的球面坐标系统,能够标示地球上的任何一个位置。

经纬度换算成米:

纬度分为60分,每一分再分为60秒以及秒的小数。

纬度线投射在图上看似水平的平行线,但实际上是不同半径的圆。有相同特定纬度的所有位置都在同一个纬线上。 

赤道的纬度为0°,将行星平分为南半球和北半球。 

纬度是指某点与地球球心的连线和地球赤道面所成的线面角,其数值在0至90度之间。位于赤道以北

点的纬度叫北纬,记为N,位于赤道以南的点的纬度称南纬,记为S。

纬度数值在0至30度之间的地区称为低纬地区,纬度数值在30至60度之间的地区称为中纬地区,纬度数值在60至90度之间的地区称为高纬地区。

赤道、南回归线、北回归线、南极圈和北极圈是特殊的纬线。

纬度1秒的长度:

地球的子午线总长度大约40008km。平均:

纬度1度 = 大约111km 

纬度1分 = 大约1.85km 

纬度1秒 = 大约30.9m

图为信息科技(深圳)有限公司
2021-01-25 广告
边缘计算可以咨询图为信息科技(深圳)有限公司了解一下,图为信息科技(深圳)有限公司(简称:图为信息科技)是基于视觉处理的边缘计算方案解决商。作为一家创新企业,多年来始终专注于人工智能领域的发展,致力于为客户提供满意的解决方案。... 点击进入详情页
本回答由图为信息科技(深圳)有限公司提供
八零后电影院
高粉答主

2018-12-27 · 说的都是干货,快来关注
知道小有建树答主
回答量:330
采纳率:100%
帮助的人:9.7万
展开全部

计算经纬度之间的距离方法如下:

计算地球上经纬度之间的距离d,已知地球上两点的经度、纬度:(X1,Y1), (X2,Y2),其中X1,X2为经度,Y1,Y2为纬度;

视计算程序需要转化为弧度(*3.1415926/180)地球半径为R=6371.0 km,则两点距离d=R*arcos[cos(Y1)*cos(Y2)*cos(X1-X2)+sin(Y1)*sin(Y2)]。

假设在中国某地,杆影最短时是中午13点20分,且杆长与影长之比为1,则可知该地是北纬45°(tgα=1),东经100°(从120°里1小时减15°,4分钟减1°)杆长与影长之比需查表求α。再算两至日经度的算法不变 纬度在北半球冬至α+23.5°,夏至α-23.5°在任意一天加减修正值即可。

扩展资料

经纬分度:

经度分为360度,每15度1个时区,其中0度的叫本初子午线,是第一个进入新一天的地方,然后向西每过1个时区就相差1小时。例如是早上5点,那么向西一个时区就是早上4点,再过1个时区就是早上3点,依此类推,向东则相反,一直到本初子午线。

纬度赤道的纬度为0°,将行星平分为南半球和北半球。纬度是指某点与地球球心的连线和地球赤道面所成的线面角,其数值在0至90度之间。位于赤道以北的点的纬度叫北纬,记为N,位于赤道以南的点的纬度称南纬,记为S。

纬度数值在0至30度之间的地区称为低纬地区,纬度数值在30至60度之间的地区称为中纬地区,纬度数值在60至90度之间的地区称为高纬地区。

参考资料:百度百科—经纬度

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
metjiang
2012-12-10 · TA获得超过1.7万个赞
知道大有可为答主
回答量:2292
采纳率:66%
帮助的人:1613万
展开全部
计算地球上两点距离d
已知地球上两点的经度、纬度:(X1,Y1), (X2,Y2),其中X1,X2为经度,Y1,Y2为纬度;
视计算程序需要转化为弧度(*3.1415926/180)
地球半径为R=6371.0 km
则两点距离d=R*arcos[cos(Y1)*cos(Y2)*cos(X1-X2)+sin(Y1)*sin(Y2)]
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zxxuu
2012-12-17
知道答主
回答量:8
采纳率:100%
帮助的人:5.6万
展开全部
公式=(6378137*2*ASIN(SQRT(SUMSQ(SIN((RADIANS(B1) - RADIANS(D1))/2))+ COS(RADIANS(B1))*COS( RADIANS(D1))*SUMSQ(SIN((RADIANS(A1)-RADIANS(C1))/2)))))/1000

A1、B1、C1、D1分别为经度1、纬度1、经度2、纬度2

excel中的计算公式,不知道你是不是在找这个。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
这个男人有点乖
2012-12-10 · TA获得超过212个赞
知道小有建树答主
回答量:157
采纳率:0%
帮助的人:101万
展开全部
如:X-X=A Y-Y=B
A是一个直接三角形的边,B也是一个直角三角形的边 ,然后求三角形的斜边就行了。
追问
谢谢,不过完全没明白
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式