在python中用最小距离返回lat long

2024-06-16 16:49:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我想找到最短距离的横向长组合。x_lat,x_long是常数。我想得到y_纬度和y_经度的组合,计算距离,找出最小距离,并返回相应的y_纬度,y_经度。在

以下是尝试

x_lat = 33.50194395
x_long = -112.048885

y_latitude = ['56.16', '33.211045400000003', '37.36']
y_longitude = ['-117.3700631', '-118.244']

我有一个距离函数,它可以返回距离

^{pr2}$

所以我尝试了如下方法

dist = []
for i in itertools.product(y_latitude , y_longitude):
    print i
    dist.append(distance(float(i[1]),float(i[0]),float(x_long), float(x_lat)))

print dist.index(min(dist))

因此,这将创建y_纬度和y_经度的所有可能的组合,并计算距离并返回最小距离的索引。我不能让它返回相应的y_纬度和y_经度。在

这里最小距离的指标是2,输出是2。所需的输出是('33.211045400000003','-117.3700631'),我无法使其返回。在

谁能帮我解最后一块吗?在

谢谢


Tags: 方法函数距离dist常数floatlongprint
1条回答
网友
1楼 · 发布于 2024-06-16 16:49:02

试试这个

dist = []
for i in itertools.product(y_latitude , y_longitude):
    dist.append([distance(float(i[1]),float(i[0]),float(x_long), float(x_lat)),i])
min_lat,min_lng = min(dist, key = lambda x: x[0])[1]

将lat和long与dist一起追加,得到第一个索引的min

相关问题 更多 >