My 2 Centlys.
вероятно, потому что GeoCoordinateWatcher требуется некоторое время (2 секунды или около того), чтобы получить новые значения координат и привязаться к GPS, сотовой мачте, Wi-Fi и т. И это даст вам последнюю записанную позицию в то же время.
Итак, попробуйте подключиться к следующим событиям
watcher.StatusChanged += new EventHandler< GeoPositionStatusChangedEventArgs>(watcher_StatusChanged);
watcher.PositionChanged += new EventHandler< GeoPositionChangedEventArgs< GeoCoordinate>>(watcher_PositionChanged);
где watcher = новый GeoCoordinateWatcher (GeoPositionAccuracy.High);
и вызовите NotifyComplete (); в вашем обработчике "watcher_PositionChanged".