Я просмотрел документы Microsoft и кое-что привлекло мое внимание.
Расстояние, которое необходимо переместить в метрах относительно координаты от последнего события PositionChanged до поставщика местоположениявызывает другое событие PositionChanged.
Примечания
Порог перемещения по умолчанию равен нулю, что означает, что любое изменение местоположения, обнаруженное текущим поставщиком местоположения, вызывает событие PositionChanged иобновить в свойстве Position.
// Get location
CLocation myLocation = new CLocation();
myLocation.GetLocationEvent();
Вы должны быть зарегистрированы PostionChange событие, чтобы получить информацию о местоположении
Используйте класс местоположения (CLocation), где вынужно.
Информация о географическом местоположении MSDN
public class CLocation
{
GeoCoordinateWatcher watcher;
public void GetLocationEvent()
{
this.watcher = new GeoCoordinateWatcher();
this.watcher.PositionChanged += new EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>>(watcher_PositionChanged);
bool started = this.watcher.TryStart(false, TimeSpan.FromMilliseconds(2000));
if (!started)
{
Console.WriteLine("GeoCoordinateWatcher timed out on start.");
}
}
void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
{
PrintPosition(e.Position.Location.Latitude, e.Position.Location.Longitude);
}
void PrintPosition(double Latitude, double Longitude)
{
Console.WriteLine("Latitude: {0}, Longitude {1}", Latitude, Longitude);
}
}