Exemplo n.º 1
0
        public void CollectLocationData()
        {
            ILocationFix loc = LocationFixAndroid.CollectData();

            if (loc != null)
            {
                lock (_gpsLocationFixesLock)
                {
                    _locationFixes.Add(loc);
                }
            }
        }
Exemplo n.º 2
0
            public static ILocationFix CollectData()
            {
                if (LocationServiceHelper.Instance.Geoposition.Coordinate == null)
                {
                    return(null); //Nothing to collect
                }
                LocationFixAndroid loc = new LocationFixAndroid();

                //Collect provider
                switch (LocationServiceHelper.Instance.Geoposition.Coordinate.PositionSource)
                {
                case Windows.Devices.Geolocation.PositionSource.WiFi:
                case Windows.Devices.Geolocation.PositionSource.Cellular:
                    loc.Provider = "network"; break;

                case Windows.Devices.Geolocation.PositionSource.Satellite:
                    loc.Provider = "gps"; break;

                default:
                    loc.Provider = "fused"; break;
                }

                //1 = no fix, 2 = acquiring/inaccurate, 3 = fix acquired
                loc.ProviderStatus = 3;

                //Collect coordinates

                loc.Latitude  = (float)LocationServiceHelper.Instance.Geoposition.Coordinate.Point.Position.Latitude;
                loc.Longitude = (float)LocationServiceHelper.Instance.Geoposition.Coordinate.Point.Position.Longitude;
                loc.Altitude  = (float)LocationServiceHelper.Instance.Geoposition.Coordinate.Point.Position.Altitude;

                // TODO: why 3? need more infos.
                loc.Floor = 3;

                // TODO: why 1? need more infos.
                loc.LocationType = 1;

                loc.TimeSnapshot = DeviceInfos.RelativeTimeFromStart;

                loc.HorizontalAccuracy = (float?)LocationServiceHelper.Instance.Geoposition.Coordinate?.SatelliteData.HorizontalDilutionOfPrecision ?? (float)Math.Floor((float)_random.NextGaussian(1.0, 1.0)); //better would be exp distribution
                // @robertmclaws: VericalAccuracy is not currently transmitted in the payload.
                //loc.VerticalAccuracy = (float?)LocationServiceHelper.Instance.Geoposition.Coordinate?.SatelliteData.VerticalDilutionOfPrecision ?? (float)Math.Floor((float)_random.NextGaussian(1.0, 1.0)); //better would be exp distribution

                return(loc);
            }
Exemplo n.º 3
0
            public static ILocationFix CollectData()
            {
                if (GameClient.Geoposition.Coordinate == null)
                {
                    return(null); //Nothing to collect
                }
                LocationFixAndroid loc = new LocationFixAndroid();

                //Collect provider
                switch (GameClient.Geoposition.Coordinate.PositionSource)
                {
                case Windows.Devices.Geolocation.PositionSource.WiFi:
                case Windows.Devices.Geolocation.PositionSource.Cellular:
                    loc.Provider = "network"; break;

                case Windows.Devices.Geolocation.PositionSource.Satellite:
                    loc.Provider = "gps"; break;

                default:
                    loc.Provider = "fused"; break;
                }

                //1 = no fix, 2 = acquiring/inaccurate, 3 = fix acquired
                loc.ProviderStatus = 3;

                //Collect coordinates

                loc.Latitude  = (float)GameClient.Geoposition.Coordinate.Point.Position.Latitude;
                loc.Longitude = (float)GameClient.Geoposition.Coordinate.Point.Position.Longitude;
                loc.Altitude  = (float)GameClient.Geoposition.Coordinate.Point.Position.Altitude;

                // TODO: why 3? need more infos.
                loc.Floor = 3;

                // TODO: why 1? need more infos.
                loc.LocationType = 1;

                loc.TimeSnapshot = DeviceInfos.RelativeTimeFromStart;

                loc.HorizontalAccuracy = (float?)GameClient.Geoposition.Coordinate?.Accuracy ?? (float)Math.Floor((float)_random.NextGaussian(1.0, 1.0)); //better would be exp distribution

                return(loc);
            }