用Python处理经纬度坐标计算距离


功能需求:有多组经纬度坐标,求坐标之间的距离并取最大距离值。

分析思路:网上有很多根据坐标求距离的算法,找到一个geopy的包中提供测算坐标距离的方法,简单易用,代码如下。

 1 from geopy.distance import geodesic  #用geodesic函数测算坐标距离
 2 #计算这30组坐标之间的距离并取最大距离值
 3 yx = ["22.580788,113.920658",    "22.580833,113.920476",    "22.580828,113.920453",    "22.580819,113.920422",    "22.580729,113.920324",
 4       "22.580703,113.920316",    "22.580683,113.92032",    "22.580656,113.920332",    "22.580528,113.920476",    "22.580177,113.920847",
 5       "22.579831,113.921199",    "22.579538,113.921484",    "22.57929,113.921735",    "22.578931,113.922101",    "22.578926,113.922119",
 6       "22.578921,113.922143",    "22.578917,113.92228",    "22.57892,113.922311",    "22.578926,113.922324",    "22.579358,113.922812",
 7       "22.579872,113.923412",    "22.579909,113.923436",    "22.579937,113.92344",    "22.579954,113.923437",    "22.579964,113.923428",
 8       "22.580096,113.923141",    "22.580266,113.922667",    "22.580569,113.921566",    "22.580713,113.920971",    "22.580788,113.920658"]
 9 
10 xydis = []  #创建列表存放距离
11 for i in range(len(yx)): #使用循环遍历所有坐标
12     for j in range(i + 1, len(yx)):  #加入嵌套循环,使每两个坐标之间都要计算
13         geodesic(yx[i], yx[j]).m     #计算两组坐标之间的距离,单位:m(米)
14         xydis.append((geodesic(yx[i], yx[j]).m))  #距离值追加到xydis中
15 
16 print(len(xydis)) #30组坐标之间的取值数量
17 print(max(xydis)) #取最大距离值
18 
19 output:
20 435                 #30组坐标产生435个距离值
21 332.68025785454165  #最大距离值332.68025785454165米

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM