经纬度之间距离怎么算?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了经纬度之间距离怎么算?相关的知识,希望对你有一定的参考价值。
参考技术A经纬度之间的距离计算如下:
计算地球上经纬之间的距离d,知道地球上两点的经纬度:(x1,Y1),(X2,Y2),其中x1,X2为经纬度,Y1,Y2为经纬度;
如果地球半径为r=6371.0公里,则两点之间的距离为d=r*Arcos[cos(Y1)*cos(Y2)*cos(x1-x2)+sin(Y1)*sin(Y2)]。
假设我国极影出现的最短时间为中午13:20,杆长与影长之比为为1,则可以看出该地区为北纬45°(TGα=1),东经100°(从120°到1小时减15°,在表A中需要找到4分钟减去1°的杆长与影长为长度的比值。
计算双日经度的算法是在北半球冬至α+ 23.5°和夏至α- 23.5°的任何一天中增加和减去恒定纬度的校正值。
扩展资料:
经纬度划分:
经度被分为360度,每15度有一个时区,其中零度称为本初子午线,是进入新一天的第一个地方,然后向西的每个时区有一个时差。
例如,早上5点,西边的时区是凌晨4点,另一个要经过的时区是凌晨3点,以此类推。在东边,它与原来的子午线相反。
赤道的纬度是0度,行星平均分为南半球和北半球。纬度是指一个点与地球中心和地球赤道之间的线角,其值在0到90度之间。赤道以北点的纬度称为北纬,记为N,赤道以南点的纬度记为S。
纬度在0到30度之间的地区称为低纬度地区,纬度在30到60度之间的地区称为中纬度地区,纬度在60到90度之间的地区称为高纬度地区。
参考资料来源:百度百科-经纬度
用java写:求地球上任意两个点之间的距离,知道这两个点的经纬度
北京 116.407288 39.904549
北京市;东城区;台基厂头条东160米;中国太平洋经济合作全国委员会;中国军控与裁军协会;
陕西 108.952736 34.264648
陕西省;西安市;新城区;新城国际(西安)东南110米;ATM(中国银行)西南110米;陕西三力工贸公司公共安全工程部东南90米;
你看看这两个点的距离是多少???
下边是我查到的东西。。。我算出来的和awnhdy给的公式算出来的差距挺大。。。。
北京西到西安铁路距离1200公里。
2 北京火车站---西安火车站地图直线距离929.1公里。
3 公路距离(北京火车站---西安火车站):
总距离962.04公里
double radius=6371000;
double distance=radius*Math.acos((Math.cos(lat2)*Math.cos(lat2)*Math.cos(lon1-lon2)+Math.sin(lat1)*Math.sin(lat2)));
这是我的计算公式,在java里,结果是5995217.512567182m
r是地球半径6370km,x是经度,y是纬度
注意角度单位的转换。Math类里的sin和cos函数的参数是以弧度为单位的角度,所以x1、x2、y1、y2要用弧度表示,但一般经纬度都是用角度表示(如X1=120 东经120度)就要化成弧度(x1*Pi/180)
而acos函数返回值正好是以弧度为单位的,刚好符合要求
如果你的代码里的lat1、lat2、lon1、lon2单位是角度,可以这么改
double radius=6371000;
double distance=radius*Math.acos((Math.cos(lat2*Math.PI/180)*Math.cos(lat2*Math.PI/180)*Math.cos(lon1*Math.PI/180-lon2*Math.PI/180)+Math.sin(lat1*Math.PI/180)*Math.sin(lat2*Math.PI/180)));
我算出来是903.9千米 参考技术A 北京 116.407288 39.904549
北京市;东城区;台基厂头条东160米;中国太平洋经济合作全国委员会;中国军控与裁军协会;
陕西 108.952736 34.264648
陕西省;西安市;新城区;新城国际(西安)东南110米;ATM(中国银行)西南110米;陕西三力工贸公司公共安全工程部东南90米;
你看看这两个点的距离是多少???
下边是我查到的东西。。。我算出来的和awnhdy给的公式算出来的差距挺大。。。。
北京西到西安铁路距离1200公里。
2 北京火车站---西安火车站地图直线距离929.1公里。
3 公路距离(北京火车站---西安火车站):
总距离962.04公里 参考技术B 如果是同一纬度的话:纬度差.111.cos纬度数
否者没有纬度算不了
以上是关于经纬度之间距离怎么算?的主要内容,如果未能解决你的问题,请参考以下文章