gpt4 book ai didi

gps - 我收到了纬度和经度的回调,如何最好地计算 "current speed"和其他派生值?

转载 作者:行者123 更新时间:2023-12-04 14:52:48 26 4
gpt4 key购买 nike

(我认为这个问题与平台无关,但我碰巧正在为 Nexus One 编码)。

关于“当前速度”:我每秒都会收到一个回调,告诉我我当前的纬度和经度是多少。我可以计算当前位置和前一个位置之间的距离,因此我可以跟踪累积距离和累积时间。有了这个,我可以说整个行程的平均速度是多少。

但是我如何计算当前速度?我怀疑我需要使用最近的 N 个样本,对吗?我是否以正确的方式思考这个问题? N 的一个好的经验法则是什么?多少个样本,或多少秒回?

关于“停止时间”:如果我只是站着不动,我仍然可以获得报告给我的略有不同的纬度和经度,对吗?所以,确定我没有真正移动意味着说“以前的 X loc 都在彼此的 Y 米之内”,对吗?我是否以正确的方式思考这个问题? X 和 Y 的最佳经验法则是什么?

即使是关于“距离”:我是否会因为我真的在偷工减料而低估它?是否有算法或经验法则来确定我什么时候“转身”,我应该添加一点软糖吗?

编辑:我道歉:我对浪费人们的时间和善意感到难过,但遗憾的是,该设备给了我速度。我认为这不是因为在模拟器中不是,而是在真实设备上。谢谢大家。我仍然需要编写一些经验法则代码,但速度是最大的挑战。

编辑:我收回道歉。在我最初的问题中,我写道距离也是一个派生值。如果我只使用原始 GPS 数据,我会因为不准确而夸大距离。我可能正在走一条直线,但原始 GPS 纬度/经度会摆动,所以如果我通过测量点之间的距离来计算总距离,我会夸大它。这是与此问题相关的一些链接。

Smooth GPS data
http://www.cs.unc.edu/~welch/kalman/Levy1997/index.html
How to intelligently degrade or smooth GIS data (simplifying polygons)?
How to 'smooth' data and calculate line gradient?

最佳答案

记住一个简短的位置历史,回溯几秒钟。 5 秒应该给你一个相当准确的结果,更新相当快......

// delay is the time difference between the 2 samples you have
delay = 5; // 5 second delay

// figure out how far along x and y we have moved since last time
dx = newx - oldx;
dy = newy - oldy;

// distance travelled
distance = sqrt(dx*dx + dy*dy);

// find the speed. if the positions were measured in metres and the time in seconds
// this will be the average speed in metres per second, over the last 5 seconds
speed = distance / delay;

您可以在样本之间等待的时间越长(例如,如果您保留最后 30 个位置样本并使用 30 秒延迟),您的答案就会越稳定(即,噪声越小),但速度会越慢对速度的任何变化使用react。

为什么你需要添加这个延迟的东西?好吧,您手机中的 GPS 单元可能不是很准确。如果你站着不动,它每秒返回的位置可能会摇摆不定。这种摆动噪音会让你看起来像是在房间里随机冲刺,并且可能会导致你报告速度适中,即使你根本没有移动。当你站着不动时,我列出的解决方案并没有真正的帮助,因为 30 秒前的结果与 1 秒前的位置一样错误。您真正需要做的是在一段时间内平均位置,然后将其与稍早时间的平均位置进行比较。例如...

取 10 个位置样本并取平均值。这是位置 1。
再取 10 个样本并取平均值。这是位置 2。
将这 2 个位置与上面的代码一起使用以获得速度。

同样,您可以采集的样本越多,您的位置就越准确和稳定,但这会使您的速度测量响应更慢。

关于gps - 我收到了纬度和经度的回调,如何最好地计算 "current speed"和其他派生值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2117623/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com