你好我正在使用Python来计算用户走过的距离。我正在确定他们是否按速度走或不走。如果速度低于5米/秒,我会考虑走路。但是我很难做这个功能。你能帮我解决这个问题吗?到目前为止,我输入手动把所谓的“make_timestamped_loc”,并计算由被称为“total_dist”这是我的代码功能的距离另一个函数...计算距离的功能
import ctp17hw1
dic_loc = []
def make_timestamped_loc(La, Lng, TS):
new_loc = {}
new_loc['latitude'] = La
new_loc['longitude'] = Lng
new_loc['timestamp'] = int(TS)
dic_loc.append(new_loc)
make_timestamped_loc(37.481236, 126.952733, 1483196400)
make_timestamped_loc(37.310045, 127.101255, 1408323255)
make_timestamped_loc(37.383065, 126.672596, 1508322531)
make_timestamped_loc(37.383065, 116.672596, 1444999230)
# make_timestamped_loc(37.383065, 112.672596, 1444999230) #error sample
print(dic_loc)
def sort_locs(sortingDict):
newlist = sorted(sortingDict, key=lambda k: k['timestamp'])
for i in range(len(dic_loc) - 1, -1, -1):
dic_loc.remove(dic_loc[i])
for i in range(len(newlist)):
for j in range(len(newlist)):
if (newlist[i]['timestamp'] == newlist[j]['timestamp']
and (newlist[i]['latitude'] != newlist[j]['latitude'] or newlist[i]['longitude'] != newlist[j]['longitude'])
and i != j):
raise ValueError('There is duplicated location on same time!')
sortingDict.append(newlist[i])
sort_locs(dic_loc)
def total_dist(sortedDict):
totalDist = 0;
for i in range(len(sortedDict) - 1):
sm = ctp17hw1.dist(sortedDict[i]["latitude"], sortedDict[i]["longitude"], sortedDict[i+1]["latitude"], sortedDict[i+1]["longitude"])
totalDist = totalDist + sm
return totalDist
total_dist(dic_loc)
print(total_dist(dic_loc))
ctp17hw1是计算距离的其它文件。 因为Unix时间,我很困惑。 非常感谢您
这些时间戳编号从哪里来? Unix时间戳记给出了自纪元以来的秒数。所以从1408323255到1483196400的时间大约是866.587326天。 –
哦,时间戳实际上是我随机编辑的;;;所以你可以完全忽略它。对不起混淆 –
好吧,这种混乱使得它难以理解你的目标:你能否提供一些准确的时间戳来检查我们自己的解决方案?此外,预期的产出也是受欢迎的! – FunkySayu