一、缘由
刚刚,遇到一个数据查找需求,说需要国内各省会城市到美国首都的距离。这个数据不是标准化的,需要手动操作,思考了几秒钟,我就答应了下来。
那,我的思路是什么样的呢?
因为想到在百度地图、高德地图上,随意两点之间都可以得到具体,所以只需要得到两地之间的坐标,就可以得到距离。
首先是在网上下载了各省会城市的坐标,然后找到华盛顿的坐标,之后再找到转化方式,最终得到结果,成功完成交付。
二、具体实施
这里面,有两点很关键:
第一点是,要想到用坐标来求距离;
第二点是,要知道如何利用坐标求距离。
关于如何利用坐标来求距离,小白也会的方式,在Excel中设置好位置,输入下面两个公式中的一个就可以,因为结果都是一样的:
(注意:东经为正数,西经为负数,北纬为正数,南纬为负数)
(1) 相对简单一些 =6371004*ACOS((SIN(RADIANS(C3))*SIN(RADIANS(E3))+COS(RADIANS(C3))*COS(RADIANS(E3))*COS(RADIANS(D3-B3))))
(2)相对有点长
=6371004*ACOS(1-(POWER((SIN((90-C3)*PI()/180)*COS(B3*PI()/180)-SIN((90-E3)*PI()/180)*COS(D3*PI()/180)),2)+POWER((SIN((90-C3)*PI()/180)*SIN(B3*PI()/180)-SIN((90-E3)*PI()/180)*SIN(D3*PI()/180)),2)+POWER((COS((90-C3)*PI()/180)-COS((90-E3)*PI()/180)),2))/2)
三、涨涨芝士
大家可能会问,6371004是什么?当初我也有这个问题,经过一番搜寻,答案是这样的:地球是一个近乎标准的椭球体,它的赤道半径为6378.140千米,极半径为 6356.755千米,平均半径6371.004千米(这里忽略地球表面地形对计算带来的误差,仅仅是理论上的估算值)。
关于公式,大体可以理解为勾股定理,直角三角形求斜边长等。