用python计算20地相互之间的距离,不用插件,知道两地的经纬度。你能给出具体的例子吗?比如一地的经纬度 lat1 = radians(121.34681791) lon1 = radians(31.2033471)。其他19地的经纬度是这样(121.346817 ,31.203347) (121.81509 ,31.157478) (120.4379, 30.239141) (118.88205, 31.73622) (121.473019, 29.824459) (120.859934, 27.913373) (120.440311, 31.510065) (116.975706, 31.992549) (119.787084, 31.923641) (120.990355, 32.079356) (119.727842, 32.567404) (120.215235, 33.434328) (120.042377, 29.347964) (122.372317, 29.938274) (119.137859, 33.795129) (121.437627, 28.56518) (118.907914, 28.968572) (115.747322, 32.884966) (117.697439, 30.744188) (118.267392, 29.736078) (118.906229, 34.56746)
时间: 2023-10-06 07:10:14 浏览: 40
根据您提供的经纬度,以下是计算20个地点之间距离的示例代码:
```python
from math import sin, cos, sqrt, atan2, radians
# 地球半径(单位:千米)
R = 6371.0
# 一地的经纬度
lat1 = radians(121.34681791)
lon1 = radians(31.2033471)
# 19个目的地的经纬度
destinations = [
(radians(121.346817), radians(31.203347)),
(radians(121.81509), radians(31.157478)),
(radians(120.4379), radians(30.239141)),
(radians(118.88205), radians(31.73622)),
(radians(121.473019), radians(29.824459)),
(radians(120.859934), radians(27.913373)),
(radians(120.440311), radians(31.510065)),
(radians(116.975706), radians(31.992549)),
(radians(119.787084), radians(31.923641)),
(radians(120.990355), radians(32.079356)),
(radians(119.727842), radians(32.567404)),
(radians(120.215235), radians(33.434328)),
(radians(120.042377), radians(29.347964)),
(radians(122.372317), radians(29.938274)),
(radians(119.137859), radians(33.795129)),
(radians(121.437627), radians(28.56518)),
(radians(118.907914), radians(28.968572)),
(radians(115.747322), radians(32.884966)),
(radians(117.697439), radians(30.744188)),
(radians(118.267392), radians(29.736078)),
(radians(118.906229), radians(34.56746))
]
distances = []
# 循环计算每两个地点之间的距离
for i in range(len(destinations)):
for j in range(i+1, len(destinations)):
lat2 = destinations[i][0]
lon2 = destinations[i][1]
lat3 = destinations[j][0]
lon3 = destinations[j][1]
dlon = lon3 - lon2
dlat = lat3 - lat2
a = sin(dlat / 2)**2 + cos(lat2) * cos(lat3) * sin(dlon / 2)**2
c = 2 * atan2(sqrt(a), sqrt(1 - a))
distance = R * c
distances.append(distance)
print(distances)
```
这段代码将计算20个地点之间的距离,并将结果存储在`distances`列表中。它使用了一个嵌套的循环来计算每两个地点之间的距离。您可以将这些经纬度替换为您自己的值,并查看输出的距离结果。请注意,这种方法会计算出所有可能的地点对之间的距离,因此结果列表中会有很多重复的距离。