你好我正在使用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