2016-08-05 3 views
1

У меня есть код для использования system.device.location api, который находится в компьютерах Windows. Это должно быть довольно straightfoward кодаСистемное устройство Не работает

var watcher = new GeoCoordinateWatcher(); 
     watcher.PositionChanged += 
new EventHandler<GeoPositionChangedEventArgs< 
    GeoCoordinate>>(GeoPositionChanged); 
     watcher.Start(); 
     var coord = watcher.Position.Location; 

Я имею в виду все, что нужно сделать, это начать гео Бодрствующие, а затем прочитать местоположение. Но он только когда-либо возвращает «Location Unknown», и мне интересно, есть ли проблема с кодом или что-то нужно установить на компьютере или что. Я пробовал это с помощью нескольких окон 7 шт. И 1 окна 10 шт., И все они имеют включенное расположение в настройках. Итак, что не так с этим кодом? Также это код для геопозиции, если это имеет значение.

private static void GeoPositionChanged(object sender, 
GeoPositionChangedEventArgs<GeoCoordinate> e) 
    { 
     MessageBox.Show("The current location is: " + 
      e.Position.Location.Latitude + "/" + 
      e.Position.Location.Longitude + "."); 
    } 
+0

Ждать, если услуги по предоставлению услуг будут готовы. В вашем GeoCoordinateWatcher есть событие для изменения статуса и другое для изменения позиции. – Odrai

+0

Я столкнулся с проблемой в asp.net mvc, что геопозиционирование не работает, если ваш сайт не включен SSL – Sherlock

ответ

2

Ждать, если услуги по установке будут готовы. В вашем GeoCoordinateWatcher есть событие для изменения статуса и другое для изменения позиции.

GeoCoordinateWatcher _watcher; 
    public Class1() 
    { 
     _watcher = new GeoCoordinateWatcher(); 
     _watcher.StatusChanged += Watcher_StatusChanged; 
     _watcher.PositionChanged += GeoPositionChanged; 

     _watcher.Start(); 
     var coord = _watcher.Position.Location; 
    } 

    private void Watcher_StatusChanged(object sender, GeoPositionStatusChangedEventArgs e) 
    { 
     if (e.Status == GeoPositionStatus.Ready) 
     { 
      MessageBox.Show("Watcher is ready. First location: The current location is: " + 
      _watcher.Position.Location.Latitude + "/" + 
      _watcher.Position.Location.Longitude + "."); 
     } 
    } 

    private static void GeoPositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e) 
    { 
     MessageBox.Show("The current location is: " + 
      e.Position.Location.Latitude + "/" + 
      e.Position.Location.Longitude + "."); 
    } 
+0

Нет кубиков, по-прежнему неизвестен – trinityalps

+0

Какая версия Windows вы используете? Какова ценность «e.Status»? Для просмотра значения используйте точку останова. – Odrai

+0

Говорит инициализация – trinityalps

Смежные вопросы