我有一个python程序,它将特定的Lat / Lon与一组lat / lon进行比较,并显示最接近的纬度/经度。代码如下:
def distance(lat1, lon1, lat2, lon2):
p = 0.017453292519943295#degree to radian
a = 0.5 - cos((lat2-lat1)*p)/2 + cos(lat1*p)*cos(lat2*p) * (1-cos((lon2-lon1)*p)) / 2
return 12742 * asin(sqrt(a)) #print data in kms
def closest(data, v):
return min(data, key=lambda p: distance(v['lat'],v['lon'],p['lat'],p['lon']))
sdata = [{'lat': 37.82, 'lon': 86.142},
{'lat': 38.88, 'lon': 87.251 },
{'lat': 39.78, 'lon': 89.336},
{'lat': 40.42, 'lon': 86.123},
{'lat': 41.35, 'lon': 90.21 },
{'lat': 39.66, 'lon': 87.11}]
lat = input("Latitude:")
lon = input("Longitude:")
cust = {'lat': lat, 'lon':lon}
print(closest(sdata,cust))
结果:
Input: Latitude:45
Longitude:85
Output:{'lat': 40.42, 'lon': 86.123}
这个片段工作正常,但我想整合数据库中的数据。所以我的数据库中有一个lat和lon列表:
(('25.2748603820801', '55.327449798584'), ('25.2712', '55.298'), ('25.277031', '55.275226'), ('25.251389', '55.332222'), ('25.275397', '55.328213'), ('25.275397', '55.328213'))
如何集成上面的代码,以便我可以对数据库中的值运行循环,并在没有输入的情况下比较它们之间的值,即希望能给出7个不同的答案
答案 0 :(得分:0)
迭代元组并按以下方式转换为dicts格式数组所需的格式,并将其用作方法的输入。
<!DOCTYPE html>
<html>
<head>
<title>test CSS Grid</title>
<link media="all" type="text/css" rel="stylesheet" href="product.css">
<script src = "jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="productScript.js"></script>
<div class="hide">
<div id="product" class="product">
<div><u>Pos: </u></div><div class="Pos">test1</div>
<div><u>Artikel: </u></div><div class="Artikel">test2</div>
<div><u>Menge: </u></div><input class="Menge" type="text" />
<div><u>Lagerplatz: </u></div><div class="Lagerplatz">test6</div>
<div><u>Bezeichnung: </u></div><div class="Bezeichnung">test3</div>
</div>
</div>
</head>
<body>
<div class="grid">
<div id="wrapper" class="wrapper">
</div>
<div class="menu">
<button type="button" onclick="mockConfirm()"> barcode</button>
<button type="button" onclick="cancelPicklist()"> cancel</button>
</div>
</div>
</body>
</html>