python实现根据两点经纬度计算实际距离
来源:互联网 发布:mac系统好玩的枪战游戏 编辑:程序博客网 时间:2024/06/05 13:23
下面是python 两种方法实现的距离的计算,可能误差有一定的区别
# -*- coding: utf-8 -*- from math import*def Distance1(Lat_A,Lng_A,Lat_B,Lng_B): #第一种计算方法 ra=6378.140 #赤道半径 rb=6356.755 #极半径 (km) flatten=(ra-rb)/ra #地球偏率 rad_lat_A=radians(Lat_A) rad_lng_A=radians(Lng_A) rad_lat_B=radians(Lat_B) rad_lng_B=radians(Lng_B) pA=atan(rb/ra*tan(rad_lat_A)) pB=atan(rb/ra*tan(rad_lat_B)) xx=acos(sin(pA)*sin(pB)+cos(pA)*cos(pB)*cos(rad_lng_A-rad_lng_B)) c1=(sin(xx)-xx)*(sin(pA)+sin(pB))**2/cos(xx/2)**2 c2=(sin(xx)+xx)*(sin(pA)-sin(pB))**2/sin(xx/2)**2 dr=flatten/8*(c1-c2) distance=ra*(xx+dr) return distancedef Distance2(lat1,lng1,lat2,lng2):# 第二种计算方法 radlat1=radians(lat1) radlat2=radians(lat2) a=radlat1-radlat2 b=radians(lng1)-radians(lng2) s=2*asin(sqrt(pow(sin(a/2),2)+cos(radlat1)*cos(radlat2)*pow(sin(b/2),2))) earth_radius=6378.137 s=s*earth_radius if s<0: return -s else: return sLat_A=32.060255; Lng_A=118.796877 # 南京Lat_B=39.904211; Lng_B=116.407395 # 北京distance=Distance1(Lat_A,Lng_A,Lat_B,Lng_B)print('(Lat_A, Lng_A)=({0:.6f},{1:.6f})'.format(Lat_A,Lng_A))print('(Lat_B, Lng_B)=({0:.6f},{1:.6f})'.format(Lat_B,Lng_B))print('Distance1={0:.3f} km'.format(distance))print('Distance2={0:.3f} km'.format(Distance2(Lat_A,Lng_A,Lat_B,Lng_B)))结果:(Lat_A, Lng_A)=(32.060255,118.796877)(Lat_B, Lng_B)=(39.904211,116.407395)Distance1=896.533 kmDistance2=899.218 km
1 0
- python实现根据两点经纬度计算实际距离
- c++实现根据地图上两点经纬度计算两点间实际距离
- 用Python根据两点经纬度计算距离
- PHP根据经纬度计算两点间实际距离
- 根据两点经纬度计算距离
- 根据两点经纬度计算距离
- 根据两点经纬度计算距离
- 根据两点经纬度计算距离
- 根据两点经纬度计算距离
- 根据两点经纬度计算距离
- 根据两点经纬度计算距离
- 根据两点经纬度计算距离
- 根据两点经纬度计算距离
- 根据两点经纬度计算距离
- 根据两点经纬度计算距离
- 根据两点经纬度计算距离
- 根据两点经纬度计算距离
- 根据两点经纬度计算距离
- Spring常用注解
- 为什么要用Android Studio?
- 罪人审判
- leetcode.371. Sum of Two Integers
- SQL Server复制入门(一)----复制简介
- python实现根据两点经纬度计算实际距离
- The specified datastore driver ("com.mysql.jdbc.Driver") was not found in the CLASSPATH
- 如何在Android Studio中导入JNI生成的.so库
- onvif设备发现
- [精通Objective-C]运行时系统
- 剔除matlab中NaN
- [高斯消元 线性基 贪心 拟阵 逆元] BZOJ 4004 [JLOI2015]装备购买
- Openjudge 1.12 寻宝 ---唉,我竟无言以对
- 待毕业.Net码农就业求职储备