我预先有9000个经纬坐标点,给出一个经纬坐标,求取这个给定的坐标与余先给出的9000坐标的最小距离,想用python实现上述功能,该如何操作
时间: 2024-04-30 16:20:29 浏览: 63
你可以使用Python中的geopy库来计算两个经纬度之间的距离,然后使用循环遍历给定的9000个坐标点,找到最小距离。下面是一个示例代码:
``` python
from geopy.distance import geodesic
# 给定的坐标
given_lat = 39.9042
given_lon = 116.4074
# 9000个经纬度坐标点
coords = [(lat1, lon1), (lat2, lon2), ..., (lat9000, lon9000)]
# 初始化最小距离和对应的坐标
min_distance = float('inf')
min_coord = None
# 循环遍历所有坐标点
for coord in coords:
# 计算当前坐标点和给定坐标的距离
distance = geodesic((given_lat, given_lon), coord).km
# 如果当前距离比最小距离小,则更新最小距离和对应的坐标
if distance < min_distance:
min_distance = distance
min_coord = coord
# 输出最小距离和对应的坐标
print('最小距离:{} km'.format(min_distance))
print('最小距离对应的坐标:{}'.format(min_coord))
```
这个示例代码中,我们使用了geopy库中的`geodesic`函数来计算两个经纬度之间的距离。`km`参数表示距离单位为千米。循环遍历所有坐标点,找到最小距离和对应的坐标。最后输出最小距离和对应的坐标。
阅读全文