我一直在尝试用我的wp7从GPS获取读数。
我使用的代码与此处的示例非常相似: Getting GPS coordinates on Windows phone 7
我在页面上有两个文本块。一个显示Position.Location.Speed的速度,另一个显示Position.Location.TimeStamp的时间戳。这是由watcher_PositionChanged事件触发的。
我注意到事件每隔一秒左右被触发,因为时间戳会更新以反映这一点。我也将GPS状态读为“就绪”(前几个读数为“无数据”)但是,速度值继续显示NaN。
我将此代码加载到物理设备(LG Optimus 7)上,然后在仪表板上用手机沿着街道开车进行测试。
答案 0 :(得分:0)
好的,我意识到GeoCoordinateWatcher在UI线程上运行,它表现得有些奇怪。将其移至单独的线程中可以解决问题。
答案 1 :(得分:0)
尝试用这种方式:
void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
{
// you cannot change the UI in this function -> you have to call the UI Thread
Deployment.Current.Dispatcher.BeginInvoke(() => ChangeUI(e));
}
void ChangeUI(GeoPositionChangedEventArgs<GeoCoordinate> e)
{
// do magic
}