C# GPS中间驱动程序未返回有效结果
我正在尝试使用GPS中间驱动程序从Windows Mobile 6.5设备获取Lat和Long数据,代码如下:C# GPS中间驱动程序未返回有效结果,c#,windows-mobile,gps,C#,Windows Mobile,Gps,我正在尝试使用GPS中间驱动程序从Windows Mobile 6.5设备获取Lat和Long数据,代码如下: Gps gps = new Gps(); gps.Open(); var pos = gps.GetPosition(); while (!pos.LatitudeValid && !pos.LongitudeValid) pos = gps.GetPosition(); gps.Close(); 问题是我从不打破循环!我尝试在完全相同的地点使用Bing
Gps gps = new Gps();
gps.Open();
var pos = gps.GetPosition();
while (!pos.LatitudeValid && !pos.LongitudeValid)
pos = gps.GetPosition();
gps.Close();
问题是我从不打破循环!我尝试在完全相同的地点使用Bing地图,使用GPSID可以立即得到结果
所有我需要的是相对(如在100米以内)的横向和纵向数据。我从6.5.3 DTK中提取了GPSID dll,因此我相信它是最新的。上面列出了访问GPS的所有代码,因此如果我遗漏了什么,请告诉我
感谢这对于COM组件来说是非常典型的,它们无法更新其内部状态,直到您启动消息循环。如果没有发生,你就陷入了一个循环。改用计时器。谢谢,我想是那样的。你能举一个使用计时器的小例子吗?你不知道如何使用计时器吗?请远离键盘。lol,不,我不知道如何使用计时器:)我所说的“小示例”是指添加一个轮询
gps.GetPosition()的计时器
或通过直接订阅GPS对象的“OnLocationChange”事件来使用GPS类的内部计时器。另外,我想知道您是否有任何特定的insite进入适当的滴答时间间隔(我通常是100毫秒,但我也不知道我在说什么),我实际上最终做了后者(事件订阅),但在一个单独的线程上运行它,然后调用Join,这非常适合,并且不需要重新执行任何逻辑。