Winphone 8 GPS怪异

时间:2014-05-29 21:02:21

标签: windows-phone-8 windows-mobile-gps

我正在为WinPhone 8写一个POC(我有一个运行8.1版本的诺基亚928)。

我正在使用的功能之一是GeoLocator,我注意到一些奇怪的行为。我的应用程序获取您当前的位置,然后跟踪您的移动并计算两点之间的距离。奇怪的是,我坐着不动而且PositionChanged事件正在开火!是什么赋予了?我还没有移动,我的应用已经说明距离原点和我当前位置的距离是~9米。

这是GPS的正常行为吗?如果是这样,建议的处理方法是什么?

以下是我的GeoLocator设置方式:

            _Geolocator = new Geolocator();
            _Geolocator.DesiredAccuracy = PositionAccuracy.High;
            _Geolocator.MovementThreshold = 5;
            _Geolocator.ReportInterval = 1000;

我有一个获取当前位置的按钮并启动位置更改事件(为了简洁起见斩波代码):

        Geoposition position = await _Geolocator.GetGeopositionAsync();

        _trackLocation = true;
        _currentLocation = position;
        OrigLongitude = _currentLocation.Coordinate.Longitude;
        OrigLatitude = _currentLocation.Coordinate.Latitude;

        _Geolocator.PositionChanged += _Geolocator_PositionChanged;
        Message = "tracking location";

和PositionChanged事件:

            _currentLocation = args.Position; 

            //calculate the distance
            double d = _pointTracker.DistanceTo(_currentLocation.Coordinate.Latitude, _currentLocation.Coordinate.Longitude);
            double accuracy = _currentLocation.Coordinate.Accuracy;
            if (true == show.Contains("tracking X"))
            {
                show = "tracking Y " + accuracy.ToString();
            }
            else
            {
                show = "tracking X " + accuracy.ToString();
            }

            DispatcherHelper.CheckBeginInvokeOnUI(() => { Distance = d; }); 
            DispatcherHelper.CheckBeginInvokeOnUI(() => { Message = show; });
            DispatcherHelper.CheckBeginInvokeOnUI(() => { Longitude = _currentLocation.Coordinate.Longitude; });
            DispatcherHelper.CheckBeginInvokeOnUI(() => { Latitude =    _currentLocation.Coordinate.Latitude; });

show junk让我看到一条消息,显示事件正在触发。唯一感兴趣的是GPS准确度我回来了(通常它大约3米,门在9米)。

任何方向或帮助将不胜感激。 TIA

0 个答案:

没有答案