2012-09-10 267 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