2012-09-10 497 views
0

我正在嘗試使用python()來製作實時GPS跟蹤設備。實時GPS跟蹤

功能

我有10個固定地點

loc0 = (lat0,lon0) 
loc1 = (lat1,lon1) 
loc2 = (lat2,lon2) 
loc3 = (lat3,lon3) 
loc4 = (lat4,lon4) 
loc5 = (lat5,lon5) 
loc6 = (lat6,lon6) 
loc7 = (lat7,lon7) 
loc8 = (lat8,lon8) 
loc9 = (lat9,lon9) 

我目前的職位

locCurrent = (latCurrent,lonCurrent) 

代碼來計算距離

def haversine(lon1, lat1, lon2, lat2): 
    """ 
    Calculate the great circle distance between two points 
    on the earth (specified in decimal degrees) 
    """ 
    # convert decimal degrees to radians 
    lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2]) 
    # haversine formula 
    dlon = lon2 - lon1 
    dlat = lat2 - lat1 
    a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2 
    c = 2 * asin(sqrt(a)) 
    km = 6367 * c 
    return km 

疑問

1.)當距離小於5千米時,我應該怎麼觸發一個函數,例如發送電子郵件或短信,有效(一種可能的方式是運行一個無限循環並根據距離(這裏5公里),但是那不是很有效)

2),這是比Python來完成相同的

請建議一些記錄教程關於同其他最喜歡的語言,感謝提前

+0

這是要在手機上運行嗎?或中央服務器?或一臺電腦?或Arduino板?你如何得到你的價值觀?你能做一個cron工作嗎? –

+0

我剛開始規劃我的項目。我打算最終在中央服務器上運行它,但截至目前我已經有了一個OSX,並且關於位置信息,我已經看到了一些通過串行連接到GPS設備的示例ports.I需要得到正確的信息和方向開始,你可以建議我一些教程關於相同的 – Abhimanyu

+0

如果你從一個串行端口獲得你的數據,你將不得不連續輪詢它,所以你基本上看着一個無限循環...如果它的電話應用程序將與中央服務器通話,您將收到來自應用程序的查詢,並且不需要無限循環...一旦您獲得了您的要點,您可以將它們繪製在Google Maps API上或什麼 –

回答

0

如果您打算不斷col通過串口查看GPS數據,查看扭曲的服務器(它的反應器支持來自串行端口的事件)http://twistedmatrix.com/trac/有一個例子不斷獲得gps在串口上的位置 - 請參閱本頁面上的gpsfix.py http://twistedmatrix.com/documents/current/core/examples/。它可能不是你想要的,但它是一個很好的起點,並且可以讓你用一些工作代碼來評估這種方法。

+0

收集數據的其他方式是什麼,例如,如果我將GPS固定到我的汽車並想跟蹤其位置,並且如果距離固定位置5公里,它會觸發一些操作,謝謝 – Abhimanyu