2016-08-05 11 views
1

Windowsのコンピュータにあるsystem.device.location APIを使用するためのコードがあります。これは私が私がする必要があるすべては地理ウォッチャーを開始し、その後、場所を読んで意味かなりstraightfowardコードシステムデバイスの場所が正しく動作しない

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

でなければなりません。しかし、それは "位置不明"を返すだけで、コードに問題があるのか​​、何かをコンピュータにインストールする必要があるのか​​、それとも何かがあるのだろうかと思います。私はいくつかの窓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

関連する問題