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
        }
        // Constructor
        public MainPage()
        {
            InitializeComponent();

            System.Device.Location.GeoCoordinateWatcher watcher = new System.Device.Location.GeoCoordinateWatcher();
            watcher.PositionChanged += new EventHandler<System.Device.Location.GeoPositionChangedEventArgs<System.Device.Location.GeoCoordinate>>(watcher_PositionChanged);
            watcher.Start();
        }
Example #3
0
        static void Main(string[] args)
        {
            var watcher = new System.Device.Location.GeoCoordinateWatcher(System.Device.Location.GeoPositionAccuracy.High);

            watcher.StatusChanged   += (s, e) => Console.WriteLine($"Status changed: {e.Status}");
            watcher.PositionChanged += (s, e) => Console.WriteLine($"Position changed: {e.Position.Location.Latitude} , {e.Position.Location.Longitude} , {e.Position.Location.Altitude}  ");
            watcher.Start();
            Console.ReadKey();
            watcher.Stop();
        }
Example #4
0
        public ResolveAddress()
        {
            InitializeComponent();

            _geocodeClient.GeocodeCompleted += new EventHandler <MobileSrc.Services.GeocodeServices.GeocodeCompletedEventArgs>(_geocodeClient_GeocodeCompleted);
            textBox.TextChanged             += new TextChangedEventHandler(textBox_TextChanged);
            listBox.SelectionChanged        += new SelectionChangedEventHandler(listBox_SelectionChanged);

            _watcher = new System.Device.Location.GeoCoordinateWatcher(System.Device.Location.GeoPositionAccuracy.Default);
            _watcher.PositionChanged += new EventHandler <System.Device.Location.GeoPositionChangedEventArgs <System.Device.Location.GeoCoordinate> >(a_PositionChanged);
            _watcher.Start();

            ((ApplicationBarIconButton)ApplicationBar.Buttons[0]).IsEnabled = false;
            SelectedGeocodeResult = null;

            this.Loaded += new RoutedEventHandler(ResolveAddress_Loaded);
        }
Example #5
0
        public ResolveAddress()
        {
            InitializeComponent();

            _geocodeClient.GeocodeCompleted += new EventHandler<MobileSrc.Services.GeocodeServices.GeocodeCompletedEventArgs>(_geocodeClient_GeocodeCompleted);
            textBox.TextChanged += new TextChangedEventHandler(textBox_TextChanged);
            listBox.SelectionChanged += new SelectionChangedEventHandler(listBox_SelectionChanged);

            _watcher = new System.Device.Location.GeoCoordinateWatcher(System.Device.Location.GeoPositionAccuracy.Default);
            _watcher.PositionChanged += new EventHandler<System.Device.Location.GeoPositionChangedEventArgs<System.Device.Location.GeoCoordinate>>(a_PositionChanged);
            _watcher.Start();

            ((ApplicationBarIconButton)ApplicationBar.Buttons[0]).IsEnabled = false;
            SelectedGeocodeResult = null;

            this.Loaded += new RoutedEventHandler(ResolveAddress_Loaded);
        }
Example #6
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);
        }
Example #7
0
 /// <summary>
 /// starts a geoposition watcher
 /// </summary>
 private void initGeoWatcher()
 {
     if (_currentPositionWatcher == null)
     {
         _currentPositionWatcher = new System.Device.Location.GeoCoordinateWatcher(System.Device.Location.GeoPositionAccuracy.High);
         _currentPositionWatcher.StatusChanged += new EventHandler<System.Device.Location.GeoPositionStatusChangedEventArgs>(callbackCurrentPositionWatcher_StatusChanged);
     }
     if (_currentPositionRefreshTimer == null) ;
     {
         _currentPositionRefreshTimer = new DispatcherTimer();
         _currentPositionRefreshTimer.Tick += new EventHandler(callbackCurrentPositionRefreshTimer_Tick);
         _currentPositionRefreshTimer.Interval = new TimeSpan(0, 0, 60); //default interval for refresh data
     }
     _currentPositionWatcher.Start();
 }