首页 > 编程语言 > 详细

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

时间:2021-02-05 01:07:12      阅读:127      评论:0      收藏:0      [点我收藏+]

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

分析思路:网上有很多根据坐标求距离的算法,找到一个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米

 

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

原文:https://www.cnblogs.com/erickoh/p/14375471.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!