Esempio n. 1
0
        public void OnLocationChanged(Location location)
        {
            lock (_syncLock)
            {
                if (_isListening &&
                    location.Accuracy <= _desiredAccuracyInM)
                {
                    var response = new GPSResponse();
                    if (location.HasAccuracy)
                    {
                        response.Accuracy = location.Accuracy;
                    }
                    if (location.HasAltitude)
                    {
                        response.Altitude = location.Altitude;
                    }
                    if (location.HasBearing)
                    {
                        response.Heading = location.Bearing;
                    }
                    if (location.HasSpeed)
                    {
                        response.Speed = location.Speed;
                    }

                    response.Longitude = location.Longitude;
                    response.Latitude  = location.Latitude;
                    response.Timestamp = location.Time.FromUnixTimeMilliseconds();
                    _completionSource.SetResult(response);
                    Cleanup();
                }
            }
        }
Esempio n. 2
0
        private void OnLocationChanged(CLLocation location)
        {
            lock (_syncLock)
            {
                if (_isListening &&
                    location.HorizontalAccuracy < _desiredAccuracyInMeters)
                {
                    var result = new GPSResponse
                    {
                        Altitude         = location.Altitude,
                        Longitude        = location.Coordinate.Longitude,
                        Latitude         = location.Coordinate.Latitude,
                        Heading          = location.Course,
                        Speed            = location.Speed,
                        Timestamp        = ToDateTime(location.Timestamp),
                        Accuracy         = location.HorizontalAccuracy,
                        AltitudeAccuracy = location.VerticalAccuracy
                    };

                    _completionSource.SetResult(result);

                    Cleanup();
                }
            }
        }