Esempio n. 1
0
        private void SetLocationChangedCallback()
        {
            Log.Info(Globals.LogTag, "Calling SetLocationChangedCallback");

            if (_locationChangedCallback == null)
            {
                _locationChangedCallback = (latitude, longitude, altitude, speed, direction, accuracy, timestamp, userData) =>
                {
                    Log.Info(Globals.LogTag, "LocationChangedCallback has been called");
                    Location location = new Location(latitude, longitude, altitude, speed, direction, accuracy, timestamp);
                    _location = location;
                    _locationChanged?.Invoke(this, new LocationChangedEventArgs(location));
                };
            }

            int ret = Interop.LocatorEvent.SetLocationChangedCallback(_handle, _locationChangedCallback, _interval, IntPtr.Zero);

            if (((LocationError)ret != LocationError.None))
            {
                Log.Error(Globals.LogTag, "Error in Setting location changed Callback," + (LocationError)ret);
                throw LocationErrorFactory.ThrowLocationException(ret);
            }
        }
Esempio n. 2
0
        private void SetDistanceBasedLocationChangedCallback()
        {
            Log.Info(Globals.LogTag, "SetDistanceBasedLocationChangedCallback");
            if (_distanceBasedLocationChangedCallback == null)
            {
                _distanceBasedLocationChangedCallback = (latitude, longitude, altitude, speed, direction, accuracy, timestamp, userData) =>
                {
                    Log.Info(Globals.LogTag, "DistanceBasedLocationChangedCallback #1");
                    Location location = new Location(latitude, longitude, altitude, speed, direction, accuracy, timestamp);
                    Log.Info(Globals.LogTag, "DistanceBasedLocationChangedCallback #2");
                    _distanceBasedLocationChanged?.Invoke(this, new LocationChangedEventArgs(location));
                    Log.Info(Globals.LogTag, "DistanceBasedLocationChangedCallback #3");
                };
            }

            int ret = Interop.LocatorEvent.SetDistanceBasedLocationChangedCallback(_handle, _distanceBasedLocationChangedCallback, _stayInterval, _distance, IntPtr.Zero);

            if (((LocationError)ret != LocationError.None))
            {
                Log.Error(Globals.LogTag, "Error in Setting Distance based location changed Callback," + (LocationError)ret);
                throw LocationErrorFactory.ThrowLocationException(ret);
            }
        }