Пример #1
0
        public static async Task <(double latitude, double longitude)> GetCoordinates()
        {
#if NET461
            return(await Task.Run(async() =>
            {
                using (var watcher = new System.Device.Location.GeoCoordinateWatcher())
                {
                    watcher.TryStart(true, TimeSpan.FromSeconds(1));
                    while (watcher.Position.Location.IsUnknown)
                    {
                        await Task.Delay(TimeSpan.FromMilliseconds(100));
                    }

                    var location = watcher.Position.Location;
                    return (location.Latitude, location.Longitude);
                }
            }));
#elif WINDOWS_UWP
            var locator  = new Windows.Devices.Geolocation.Geolocator();
            var position = await locator.GetGeopositionAsync();

            var latitude  = position.Coordinate.Point.Position.Latitude;
            var longitude = position.Coordinate.Point.Position.Longitude;
            return(latitude, longitude);
#else
            throw new PlatformNotSupportedException();
#endif
        }
Пример #2
0
        public static Boolean TryGetLocationFromDevice(out System.Device.Location.GeoCoordinate Location)
        {
            Location = new System.Device.Location.GeoCoordinate(0, 0);

            Boolean value = false;

            System.Device.Location.GeoCoordinateWatcher W = new System.Device.Location.GeoCoordinateWatcher();

            Boolean WW = W.TryStart(false, TimeSpan.FromMilliseconds(1000));

            if (WW == true && W.Position.Location.IsUnknown != true)
            {
                Location = new System.Device.Location.GeoCoordinate(W.Position.Location.Latitude, W.Position.Location.Longitude);
                value    = true;
            }
            W.Dispose();

            return(value);
        }