Windows phone 7 计算WP7 GPS速度时出现奇怪的结果
我试图用科恩的Windows phone GPS模拟器自己计算速度Windows phone 7 计算WP7 GPS速度时出现奇怪的结果,windows-phone-7,gps,windows-phone-7-emulator,Windows Phone 7,Gps,Windows Phone 7 Emulator,我试图用科恩的Windows phone GPS模拟器自己计算速度 void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e) { DateTime curTime = DateTime.Now; double curDistance = e.Position.Location.GetDistanceTo(lastKnow
void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
{
DateTime curTime = DateTime.Now;
double curDistance = e.Position.Location.GetDistanceTo(lastKnownPosition);
TimeSpan curTimeOffset = curTime - lastRecvTime;
double curSpeed = curDistance / curTimeOffset.TotalSeconds;
void watcher\u位置已更改(对象发送器,地理位置更改Deventargs e)
{
DateTime curTime=DateTime.Now;
双curDistance=e.Position.Location.GetDistanceTo(lastKnownPosition);
TimeSpan curTimeOffset=curTime-lastRecvTime;
双游标速度=curDistance/curTimeOffset.TotalSeconds;
当LastKnownPosition表示最后一个地理坐标时,lastRecvTime也是如此。
这里的问题是我得到的是关于速度的不稳定结果。有时速度是10米/秒,有时会跳到20米/秒
我做错了什么?GPS的精度有限。如果每秒移动20个定位点,比如10米/秒,两个定位点之间的位置差约为0.5米,这通常(取决于硬件、卫星的视线和GPS可用的卫星数)低于GPS的精度
尝试每隔几秒钟使用一次修复或保留一个队列(您可以使用循环数组来有效地实现队列)一组修复并使用平均速度。我建议两者结合使用。听起来像是典型的Windows时间估计:你确定你是在直线上“行走”吗?GPS模拟器配置为只做直线,所以经常调用yesHow函数吗?你可能需要使用某种运行平均值来计算volaCollin Hockey:根据我所看到的,每0.041秒你基本上是说我应该积累:假设向后3秒,然后通过:总通过距离/3秒计算平均速度?基本上是的,但是使用与位置实例的时间差。Stefan:我怎么能不能将e.Position.Timestamp转换为utc,它是时间的正确变量吗?时间戳是GPS硬件获得定位的时间。对于计算定位之间的时间差,时区并不重要。