[英]How to achieve continuous & accurate Windows phone 8 gps tracking
我试图制作一个可连续获取位置Windows Phone 8的应用。
以下代码用于获取位置。
geolocator = new Geolocator();
geolocator.DesiredAccuracyInMeters = 30;
geolocator.ReportInterval = 15000;
geolocator.StatusChanged += geolocator_StatusChanged;
geolocator.PositionChanged += geolocator_PositionChanged;
当gps正常恢复时,一切正常。
但是一旦gps位置不可用,Geolocator就会停止位置提取(即当设备返回gps区域时,不会调用geolocator_PositionChanged)
我试图根据此博客在geolocator_StatusChanged()
创建一个新的geolocator对象geolocator_StatusChanged()
Windows Phone 8的地理高级跟踪方案)
case PositionStatus.NoData:
geolocator = new Geolocator();
geolocator.DesiredAccuracyInMeters = 30;
geolocator.ReportInterval = 15000;
geolocator.StatusChanged += geolocator_StatusChanged;
geolocator.PositionChanged += geolocator_PositionChanged;
status = "no data";
break;
但这也行不通。 请指导我如何确保继续提供GPS数据?
还有一点要注意的是,一旦gps来源更改为“蜂窝”,它将再也不会使用卫星卫星作为gps来源(蜂窝来源返回的准确度最低的gps值)。 那么,如何在Windows Phone 8中指定GPS源?
在设备上完成的测试:诺基亚lumia 520
我有一个可以正常运行的Windows Phone位置客户端,并且已经在Lumia 520上进行了测试。请对其进行测试,并让我知道您的想法:
https://github.com/nickfox/GpsTracker/tree/master/phoneClients/windowsPhone
您不应该像位置准确性那样关注位置来源。 如果信号源达到了您所要求的精度(无论是gps,wifi还是手机),谁在乎它的来源。 测试您的位置,以确保其满足您的准确性要求:
if (args.Position.Coordinate.Accuracy < 100.0) {
// do something with location
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.