码迷,mamicode.com
首页 > 编程语言 > 详细

python实现两个经纬度点之间的距离和方位角

时间:2017-12-18 18:39:40      阅读:715      评论:0      收藏:0      [点我收藏+]

标签:between   blog   经纬   dia   实现   之间   ola   post   gps   

from:http://blog.csdn.net/zhuqiuhui/article/details/53180395

1.  求两个经纬点的方位角,P0(latA, lonA), P1(latB, lonB)(很多博客写的不是很好,这里总结一下)

    def getDegree(latA, lonA, latB, lonB):  
        """ 
        Args: 
            point p1(latA, lonA) 
            point p2(latB, lonB) 
        Returns: 
            bearing between the two GPS points, 
            default: the basis of heading direction is north 
        """  
        radLatA = radians(latA)  
        radLonA = radians(lonA)  
        radLatB = radians(latB)  
        radLonB = radians(lonB)  
        dLon = radLonB - radLonA  
        y = sin(dLon) * cos(radLatB)  
        x = cos(radLatA) * sin(radLatB) - sin(radLatA) * cos(radLatB) * cos(dLon)  
        brng = degrees(atan2(y, x))  
        brng = (brng + 360) % 360  
        return brng  

 2.  求两个经纬点的距离函数:P0(latA, lonA), P1(latB, lonB)

    def getDistance(latA, lonA, latB, lonB):  
        ra = 6378140  # radius of equator: meter  
        rb = 6356755  # radius of polar: meter  
        flatten = (ra - rb) / ra  # Partial rate of the earth  
        # change angle to radians  
        radLatA = radians(latA)  
        radLonA = radians(lonA)  
        radLatB = radians(latB)  
        radLonB = radians(lonB)  
      
        pA = atan(rb / ra * tan(radLatA))  
        pB = atan(rb / ra * tan(radLatB))  
        x = acos(sin(pA) * sin(pB) + cos(pA) * cos(pB) * cos(radLonA - radLonB))  
        c1 = (sin(x) - x) * (sin(pA) + sin(pB))**2 / cos(x / 2)**2  
        c2 = (sin(x) + x) * (sin(pA) - sin(pB))**2 / sin(x / 2)**2  
        dr = flatten / 8 * (c1 - c2)  
        distance = ra * (x + dr)  
        return distance  

 

python实现两个经纬度点之间的距离和方位角

标签:between   blog   经纬   dia   实现   之间   ola   post   gps   

原文地址:http://www.cnblogs.com/lindaxin/p/8057999.html

(0)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!