功能需求:有多組經緯度坐標,求坐標之間的距離並取最大距離值。
分析思路:網上有很多根據坐標求距離的算法,找到一個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米
