Esempio n. 1
0
    protected override void UpdateLocationRequestStatus()
    {
        bool failed            = NativeLocation.GetFailed();
        var  _isEnabled        = NativeLocation.GetIsEnabled();
        var  isLocationEnabled = NativeLocation.GetLocationServicesEnabled();

        if (!_isEnabled && !hasRequested)
        {
            status = LocationProviderStatus.Idle;
            return;
        }

        if (!_isEnabled && hasRequested && !failed)
        {
            status = LocationProviderStatus.Initializing;
            return;
        }

        if (failed && !_isEnabled)
        {
            status = LocationProviderStatus.Failed;
            return;
        }

        status = LocationProviderStatus.Started;
    }
Esempio n. 2
0
    protected override HeadingReading?ReadHeading()
    {
        double heading         = NativeLocation.GetCurrentHeading();
        double magneticHeading = NativeLocation.GetCurrentMagneticHeading();
        double accuracy        = NativeLocation.GetCurrentHeadingAccuracy();
        long   timestamp       = (long)(NativeLocation.GetCurrentHeadingTimestamp() * 1000.0);

        return(new HeadingReading()
        {
            heading = FixHeadingDeviceOrientation(heading),
            magneticHeading = FixHeadingDeviceOrientation(magneticHeading),
            accuracy = accuracy,
            isMagneticHeadingAvailable = isCompassEnabled,
            timestamp = timestamp
        });
    }
Esempio n. 3
0
    protected override LocationReading?ReadLocation()
    {
        var latitude  = NativeLocation.GetCurrentLatitude();
        var longitude = NativeLocation.GetCurrentLongitude();
        var altitude  = NativeLocation.GetCurrentAltitude();
        var accuracy  = NativeLocation.GetCurrentHorizontalAccuracy();
        var floor     = NativeLocation.GetCurrentFloorLevel();
        var timestamp = (long)(NativeLocation.GetCurrentTimestamp() * 1000.0);

        return(new LocationReading()
        {
            latitude = latitude,
            longitude = longitude,
            altitude = altitude,
            accuracy = accuracy,
            floor = floor,
            timestamp = timestamp
        });
    }
Esempio n. 4
0
 protected override void RequestLocationAndCompassUpdates()
 {
     NativeLocation.Start(options.distanceFilter);
     hasRequested = true;
 }