エクスポート (0) 印刷
すべて展開
この記事は機械翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。 詳細情報
訳文
原文

GeoCoordinateWatcher クラス

緯度および経度の座標に基づく場所データを提供します。

System.Object
  System.Device.Location.GeoCoordinateWatcher

名前空間:  System.Device.Location
アセンブリ:  System.Device (System.Device.dll 内)

public class GeoCoordinateWatcher : IDisposable, 
	INotifyPropertyChanged, IGeoPositionWatcher<GeoCoordinate>

GeoCoordinateWatcher 型で公開されるメンバーは以下のとおりです。

  名前説明
パブリック メソッドGeoCoordinateWatcher()既定の精度設定を使用して、GeoCoordinateWatcher の新しいインスタンスを初期化します。
パブリック メソッドGeoCoordinateWatcher(GeoPositionAccuracy)精度レベルを指定して、GeoCoordinateWatcher の新しいインスタンスを初期化します。
このページのトップへ

  名前説明
パブリック プロパティDesiredAccuracy GeoCoordinateWatcher によって提供される場所データに要求される精度レベル。
パブリック プロパティMovementThreshold場所プロバイダーが別の PositionChanged イベントを発生させるために必要な、最後の PositionChanged イベントの座標からの相対的なメートル単位の移動距離。
パブリック プロパティPermission場所プロバイダーからの場所データにアクセスするためのアクセス許可が付与されているか、拒否されているかを示します。
パブリック プロパティPosition現在の場所を示す GeoCoordinate を取得します。
パブリック プロパティStatus GeoCoordinateWatcher の現在の状態を取得します。
このページのトップへ

  名前説明
パブリック メソッドDispose() GeoCoordinateWatcher クラスの現在のインスタンスによって使用されているすべてのリソースを解放します。
プロテクト メソッドDispose(Boolean) GeoCoordinateWatcher クラスの現在のインスタンスによって使用されているすべてのリソースを解放します。
パブリック メソッドEquals(Object)指定のオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (Object から継承されます。)
プロテクト メソッドFinalize GeoCoordinateWatcher がガベージ コレクションによってクリアされる前に、リソースを解放し、その他のクリーンアップ操作を実行します。 (Object.Finalize() をオーバーライドします。)
パブリック メソッドGetHashCode既定のハッシュ関数として機能します。 (Object から継承されます。)
パブリック メソッドGetType現在のインスタンスの Type を取得します。 (Object から継承されます。)
プロテクト メソッドMemberwiseClone現在の Object の簡易コピーを作成します。 (Object から継承されます。)
プロテクト メソッドOnPositionChanged PositionChanged イベントが発生すると呼び出されます。
プロテクト メソッドOnPositionStatusChanged StatusChanged イベントが発生すると呼び出されます。
プロテクト メソッドOnPropertyChanged GeoCoordinateWatcher のプロパティが変更されると呼び出されます。
パブリック メソッドStart()現在の場所プロバイダーからのデータの取得を示します。 このメソッドは、PositionChanged イベントを有効にし、Position プロパティにアクセスできるようにします。
パブリック メソッドStart(Boolean)現在の場所プロバイダーからのデータの取得を示します。 このメソッドは、PositionChanged イベントを有効にし、Position プロパティにアクセスできるようにします。
パブリック メソッドStop GeoCoordinateWatcher による場所データとイベントの提供を停止します。
パブリック メソッドToString 現在のオブジェクトを表す文字列を返します。 (Object から継承されます。)
パブリック メソッドTryStart現在の場所プロバイダーからのデータの取得を開始します。 このメソッドは同期的に返ります。
このページのトップへ

  名前説明
パブリック イベントPositionChanged場所データの緯度または経度が変化したことを示します。
パブリック イベントStatusChanged GeoCoordinateWatcher オブジェクトの状態が変化したことを示します。
このページのトップへ

  名前説明
明示的なインターフェイス実装プライベート イベントIGeoPositionWatcher<GeoCoordinate>.PositionChanged場所データが変化したことを示します。
明示的なインターフェイス実装プライベート イベントIGeoPositionWatcher<GeoCoordinate>.StatusChanged場所プロバイダーの状態が変化したことを示します。
明示的なインターフェイス実装プライベート イベントINotifyPropertyChanged.PropertyChanged Status プロパティ、Position プロパティ、または Permission プロパティが変化したことを示します。
このページのトップへ

GeoCoordinateWatcher クラスは、現在の場所プロバイダーから座標ベースの場所データを提供します。 現在の場所プロバイダーは、複数の要因 (すべてのプロバイダーからのデータの正確さと古さ、場所アプリケーションにより要求される正確性、電力消費量、および場所プロバイダーに関連付けられたパフォーマンスへの影響など) に基づいて、コンピューター上で最優先されます。 現在の場所プロバイダーは、GPS デバイスが屋内で衛星信号を見失ったり、Wi-Fi 三角測量プロバイダーがそのコンピューター上での最も正確なプロバイダーになるなどの状況に応じて、変わります。

場所データへのアクセスを開始するには、GeoCoordinateWatcher を作成し、Start または TryStart を呼び出して、現在の場所プロバイダーからデータの取得を開始します。

Status をチェックして、データが使用可能かどうかを判断できます。 データを使用できる場合は、Position プロパティから場所を 1 回取得するか、PositionChanged イベントを処理して継続的な場所の更新を受信します。

Permission Status、および Position プロパティは、INotifyPropertyChanged をサポートして、アプリケーションがこれらのプロパティにデータをバインドできるようにします。

Windows 7 では、場所プロバイダーがインストールされ、コンピューターの場所を解決できる場合、すべての System.Device.Location クラスが完全に機能します。

メモメモ

Windows 7 Starter Edition では、唯一サポートされている場所プロバイダーは、コントロール パネルの既定の場所プロバイダーで、アドインは緯度と経度を指定してインストールする必要があります。

メモ: Windows 7 よりも前の Windows バージョンでは、次の条件が適用されます。

  • コンストラクターを含むすべての System.Device.Location オブジェクトを作成できますが、Status プロパティの値は常に Disabled になります。

  • Position Location プロパティによって示される場所は、常に Unknown です。

  • 場所イベントは発生しません。

次のプログラムは、GeoCoordinateWatcher を作成して、初期化のタイムアウトを使用してデータの取得を開始する方法を示します。 コードはその後、位置の座標を出力します (既知の場合)。


using System;
using System.Device.Location;

namespace GetLocationProperty
{
    class Program
    {
        static void Main(string[] args)
        {
            GetLocationProperty();
        }

        static void GetLocationProperty()
        {
            GeoCoordinateWatcher watcher = new GeoCoordinateWatcher();

            // Do not suppress prompt, and wait 1000 milliseconds to start.
            watcher.TryStart(false, TimeSpan.FromMilliseconds(1000));

            GeoCoordinate coord = watcher.Position.Location;

            if (coord.IsUnknown != true)
            {
                Console.WriteLine("Lat: {0}, Long: {1}",
                    coord.Latitude,
                    coord.Longitude);
            }
            else
            {
                Console.WriteLine("Unknown latitude and longitude.");
            }
        }
    }
}


次のプログラムは、PositionChanged イベントをサブスクライブして継続的な場所の更新を受信する方法を示します。


using System;
using System.Device.Location;

namespace GetLocationEvent
{
    class Program
    {
        static void Main(string[] args)
        {
            CLocation myLocation = new CLocation();
            myLocation.GetLocationEvent();
            Console.WriteLine("Enter any key to quit.");
            Console.ReadLine();            
        }
        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);
            }
        }
    }
}


.NET Framework

サポート対象 : 4.5.2、4.5.1、4.5、4

.NET Framework Client Profile

サポート対象 : 4

Windows Phone アプリ用 .NET

サポート対象 : Windows Phone 8、Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (サーバー コア ロールはサポート対象外), Windows Server 2008 R2 (SP1 以降でサーバー コア ロールをサポート。Itanium はサポート対象外)

.NET Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

この型のすべてのパブリック static (Visual Basic では Shared) メンバーは、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

コミュニティの追加

追加
表示:
© 2014 Microsoft