python经纬度转化为xy坐标系,经纬度距离计算 python

  python经纬度转化为xy坐标系,经纬度距离计算 python

  直接装载代码:

  知识补充链接(稍后添加)

  地理中常用的数学计算将地球简化成一个标准球体。如果想扩展到任何星球,可以改成类,然后修改半径。导入MathEarth _ radius=6370.856 #地球的平均半径,单位为km。最简单的模型往往把地球看成一个完美的球体,这个值就是remath _ 2pi=math . pi * 2 pis _ per _ degree=math _ 2pi/360 #,360对应2 * pide flat _ degree 2km(dif _ degree=. 0001,Radius=earth_radius): 通过圆求方法。在纯纬度上,度数差距离(km)与地球上中点的位置关系不大:param dif_degree:度数差,经验值0.0001对应11.1m的距离:param半径:圆的等效半径,纬度的等效圆是子午圆,所以默认为earth_radius :return:这个度数差dif_degree对应的距离,以km return半径* DIF _ degree * pis _ per _ degree平减指数_ km2degree (dis _ km=111在纯纬度中,距离值按度数(diff)转动,与中点所在地球上的位置关系不大:param dis_km:输入距离,单位km,与111km经验值相差约(接近)1度:param半径:圆解的等效半径,纬度的等效圆为子午线圆, 所以默认为earth_radius :return:这个距离dis_km在纯纬度对应多少度 return dis _ km/radius/pis _ per _ degree def LNG _ degree 2km(dif _ degree=. 0001,Center_lat=22): 通过圆求方法。 在纯经度上,度数差转向距离(km),纬度会影响距离对应的经度角度差。具体表达式为:param dif_degree:度数差:param center_lat:中心点的纬度。默认22是深圳附近的纬度值;当0代表赤道时,赤道的纬度环半径使经度计算与上述纬度计算基本一致:返回:此度数差dif_degree对应的距离,单位km #修正后,中心所在纬度的面圆半径为real _ radius=earth _ radius * math . cos(center _ lat * pis _ per _ degree)返回lat _ degree 2km (diff _ degree,real _ radius)def LNG _ km2 degree(dis _ km=1,center _ lat=22)。param dis_km:输入的距离,单位km :param center_lat:中心点的纬度,默认值22为深圳附近的纬度;0表示赤道。中国深圳赤道和中国北京对应的修正系数约为1 0.927 0.766 :return:这个距离dis_km纯经度相差多少度 #修正后中心所在纬度的面圆半径为real _ radius=earth _ radius * math . cos(center _ lat * pis _ per _ degree)return lat _ km2 degree(dis _ km,real _ radius)def ab _ distance(A _ lat,A_lng,b_lat,b_lng): 计算两点之间的距离这是一个近似的计算,在两点纬度差不大的情况下比较准确。近似的原因主要来自center _ lat:param A _ lat:A点纬度:param A _ LNG:A点经度:B点纬度:param B _ LNG:B点纬度:return: center _ lat=. 5 * A _ lat . 5 * B _ lat _ dis=lat _ degree 2km(ABS(A _ lat-B _ lat))LNG _ dis=LNG _ degree 2km(ABS(A _ LNG-B _ LNG), Center _ lat)返回math . sqrt(lat _ dis * * 2 LNG _ dis * * 2)if _ _ name _= _ _ main _ :# eg:深圳一点到北京一点的直线距离,比较符合百度地图测距结果打印(AB _ distance (2094,2094)). 50906.86896666606

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: