7

我们正在为我们的一款应用评估 WP8。它利用 GPS 跟踪在该地区工作的承包商。我们将诺基亚 Lumia 视为非常好的硬件平台,但面临软件堆栈的问题。

a.我们尝试了该平台的地理定位器功能,并将 MovementThreshold 设置为 100,并将精度设置为 HIGH。湾。我们仍然看到数据错误(即使我们移动了大约一米,我们也会遇到中断并且位置离实际太远)。在网络和文档上搜索后,我们发现“在 WP8 上,基于卫星 GPS 的位置仅在无法从 WiFi/蜂窝网络获取位置信息时才可用。

这正在扼杀对象的微调跟踪。有什么办法(比如在android中我们可以选择提供者)我们可以强制星期六。基于GPS?

如果它是重复的,我很抱歉。

任何帮助将不胜感激。

PS:我们已经应用了计算点之间差异的公式并使用阈值进行过滤,但这不是一个好方法。问候...

4

2 回答 2

6

2个地理坐标类 1 Geo* C *oordinate 属于 System.Device.Location命名空间 2 Geo* c *oordinate 属于Windows.Devices.Geolocation命名空间

如果您在跟踪代码中使用 Geolocator,那么您获得的坐标是 Geocoordinate,因为两者都位于与 2 中提到的相同命名空间中.

如果您使用的是 Geocoordinatewatcher 上面的代码可以正常工作,但如果您使用的是 Geolocator,那么 Horizo​​ntalAccuracy 属性将不可用,您必须使用 Accuracy Property 。

private const double ACCURACY_THRESHOLD = 20;

private void LocationChanged(Geocoordinate coordinate)
{
   if (coordinate.Accuracy < ACCURACY_THRESHOLD)
   {
       // use point
   }
   else
   {
       // ignore and wait for better accuracy
   }
}

或者您可以做的是您可以将 Geocoordinate 转换为 GeoCoordinate 并使用上述答案中提到的代码。

于 2013-07-03T15:41:27.600 回答
5

您不能强制基于卫星的跟踪,但通过选择高精度,它们将被启用。然后,您可以评估接收到的位置的准确性,并选择不使用不准确的位置。精度是 GeoCoordinate 类的一部分,以米为单位。

private const double ACCURACY_THRESHOLD = 20;

private void LocationChanged(GeoCoordinate coordinate)
{
   if (coordinate.HorizontalAccuracy < ACCURACY_THRESHOLD)
   {
       // use point
   }
   else
   {
       // ignore and wait for better accuracy
   }
}

请参阅http://msdn.microsoft.com/en-us/library/system.device.location.geocoordinate.horizo​​ntalaccuracy.aspx

于 2013-07-03T13:37:41.420 回答