用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