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(); }
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(); }
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); }
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); }
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); }
/// <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(); }