Windows Phone 7 GeoCoordinateWatcher准确性

时间:2010-11-25 22:54:55

标签: c# windows-phone-7 gps

这是我的问题:我希望从手机上的天线获取一些GPS数据,而且每一个我看起来都找到了几乎相同的例子(如Getting GPS coordinates on Windows phone 7)。这一切都清晰简单,但缺少一件事,准确性。 我的意思是,我怎么知道返回的位置实际上是从GPS读取而不是从CellID三角测量?对我来说这不是一个问题,直到我得到一个好读,但我怎么知道什么时候停止? 我不知道我是否已经在我的曝光中详尽无遗,我只是想知道是否有某种方法可以确定这个位置不是对一些Cell Towers进行三角测量的近似值。 感谢

[更新]
我现在正在我家里面用一个设备进行一些测试,奇怪的是我得到的结果是指向我门外的坐标,时间戳告诉我这是2小时前的读数。这不是缓存机制的问题,我总是可以检查时间戳并丢弃旧值,但我真的不理解HorizontalAccuracy参数:它的值是10000.在地图上绘制纬度和经度坐标显示我的家,因此它不能是CellID三角测量(通常使用GSM三角测量,我得到的最准确的位置是距离这里大约300 - 400米)。那么10000价值意味着什么呢? 再次感谢:)

4 个答案:

答案 0 :(得分:6)

GeoCoordinateWatcher deliberatley抽象出信息来源,用于确定它返回的位置信息的来源,以简化使用。

目前,您只需要信任观察者的准确性,具体取决于您在构造函数中指定的GeoPositionAccuracy

然而,我怀疑,与大多数基于GPS的系统一样,如果您在Watcher运行一段时间之后再次请求该位置,您可能会获得更准确的结果(因为它可能能够使用来自更多卫星的信息)在三角测量中。)

根据您所在的国家/地区而定,本地地理位置会根据三角测量中可用的卫星数量影响GPS信息的准确性。

WiFi热点精度可以有不同的准确度。

手机信号塔的定位精度可能会有所不同,具体取决于手机当前所在的手机所覆盖的区域,或者手机是否可以接触多个手机。

这是QCW试图保护您的所有这些变量组合的核算。

如果你真的必须只使用GPS信息,那么SDK目前无法提供。

答案 1 :(得分:3)

答案 2 :(得分:2)

GeoCoordinate本身包含HorizontalAccuracy属性的准确性。当然,当你启动观察者时,你可以指定你想要的准确度。

不可否认,我不知道与手机信号塔,wifi热点和GPS有关的准确度 - 但我怀疑你可以尝试一下。

答案 3 :(得分:2)

只需使用此代码:

var watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High);   // High mean GPS

我也建议这样做:

wartcher.MovementThreshold = 0.5;

它解释起来很复杂,但是如果你在像PositionChnged这样的Warcher上有事件处理,那么每次有人移动它都会自动触发。
如果将MovementThreshold设置为0.5或更高,如1或2,则如果有人移动0.5米或1米等事件,则会触发事件。