这是我的问题:我希望从手机上的天线获取一些GPS数据,而且每一个我看起来都找到了几乎相同的例子(如Getting GPS coordinates on Windows phone 7)。这一切都清晰简单,但缺少一件事,准确性。 我的意思是,我怎么知道返回的位置实际上是从GPS读取而不是从CellID三角测量?对我来说这不是一个问题,直到我得到一个好读,但我怎么知道什么时候停止? 我不知道我是否已经在我的曝光中详尽无遗,我只是想知道是否有某种方法可以确定这个位置不是对一些Cell Towers进行三角测量的近似值。 感谢
[更新]
我现在正在我家里面用一个设备进行一些测试,奇怪的是我得到的结果是指向我门外的坐标,时间戳告诉我这是2小时前的读数。这不是缓存机制的问题,我总是可以检查时间戳并丢弃旧值,但我真的不理解HorizontalAccuracy
参数:它的值是10000.在地图上绘制纬度和经度坐标显示我的家,因此它不能是CellID三角测量(通常使用GSM三角测量,我得到的最准确的位置是距离这里大约300 - 400米)。那么10000价值意味着什么呢?
再次感谢:)
答案 0 :(得分:6)
GeoCoordinateWatcher deliberatley抽象出信息来源,用于确定它返回的位置信息的来源,以简化使用。
目前,您只需要信任观察者的准确性,具体取决于您在构造函数中指定的GeoPositionAccuracy。
然而,我怀疑,与大多数基于GPS的系统一样,如果您在Watcher运行一段时间之后再次请求该位置,您可能会获得更准确的结果(因为它可能能够使用来自更多卫星的信息)在三角测量中。)
根据您所在的国家/地区而定,本地地理位置会根据三角测量中可用的卫星数量影响GPS信息的准确性。
WiFi热点精度可以有不同的准确度。
手机信号塔的定位精度可能会有所不同,具体取决于手机当前所在的手机所覆盖的区域,或者手机是否可以接触多个手机。
这是QCW试图保护您的所有这些变量组合的核算。
如果你真的必须只使用GPS信息,那么SDK目前无法提供。
答案 1 :(得分:3)
根据文件,准确度以米为单位: http://msdn.microsoft.com/en-us/library/system.device.location.geocoordinate.horizontalaccuracy.aspx
答案 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米等事件,则会触发事件。