GeoCoordinateWatcher クラス

定義

緯度および経度の座標に基づく場所データを提供します。Supplies location data that is based on latitude and longitude coordinates.

public ref class GeoCoordinateWatcher : IDisposable, System::ComponentModel::INotifyPropertyChanged, System::Device::Location::IGeoPositionWatcher<System::Device::Location::GeoCoordinate ^>
[System.Security.SecurityCritical]
public class GeoCoordinateWatcher : IDisposable, System.ComponentModel.INotifyPropertyChanged, System.Device.Location.IGeoPositionWatcher<System.Device.Location.GeoCoordinate>
type GeoCoordinateWatcher = class
    interface IDisposable
    interface INotifyPropertyChanged
    interface IGeoPositionWatcher<GeoCoordinate>
Public Class GeoCoordinateWatcher
Implements IDisposable, IGeoPositionWatcher(Of GeoCoordinate), INotifyPropertyChanged
継承
GeoCoordinateWatcher
属性
実装

次のプログラムは、を作成しGeoCoordinateWatcher 、初期化のタイムアウトを使用してデータの取得を開始する方法を示しています。The following program shows how to create a GeoCoordinateWatcher and start acquiring data by using an initialization timeout. 次に、コードは場所の座標を出力します (既知の場合)。The code then prints the coordinates of the location, if known.

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.");
            }
        }
    }
}
Imports System.Device.Location

Module GetLocationProperty
    Public Sub GetLocationProperty()
        Dim watcher As New System.Device.Location.GeoCoordinateWatcher()
        watcher.TryStart(False, TimeSpan.FromMilliseconds(1000))

        Dim coord As GeoCoordinate = watcher.Position.Location

        If coord.IsUnknown <> True Then
            Console.WriteLine("Lat: {0}, Long: {1}", coord.Latitude, coord.Longitude)
        Else
            Console.WriteLine("Unknown latitude and longitude.")
        End If
    End Sub

    Public Sub Main()
        GetLocationProperty()
        Console.ReadLine()
    End Sub

End Module

次のプログラムでは、イベントをPositionChangedサブスクライブすることによって、継続的な場所の更新を受信する方法を示しています。The following program shows how to receive continuous location updates by subscribing to PositionChanged events.

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);
            }
        }
    }
}
Imports System.Device.Location

Module GetLocationEvent
    Public Class CLocation
        Private WithEvents watcher As GeoCoordinateWatcher
        Public Sub GetLocationEvent()
            watcher = New System.Device.Location.GeoCoordinateWatcher()
            AddHandler watcher.PositionChanged, AddressOf watcher_PositionChanged
            Dim started As Boolean = watcher.TryStart(False, TimeSpan.FromMilliseconds(1000))

            If Not started Then
                Console.WriteLine("GeoCoordinateWatcher timed out on start.")
            End If
        End Sub

        Private Sub watcher_PositionChanged(ByVal sender As Object, ByVal e As GeoPositionChangedEventArgs(Of GeoCoordinate))
            PrintPosition(e.Position.Location.Latitude, e.Position.Location.Longitude)
        End Sub

        Private Sub PrintPosition(ByVal Latitude As Double, ByVal Longitude As Double)
            Console.WriteLine("Latitude: {0}, Longitude {1}", Latitude, Longitude)
        End Sub
    End Class


    Public Sub Main()
        Dim myLocation As New CLocation()
        myLocation.GetLocationEvent()
        Console.WriteLine("Enter any key to quit.")
        Console.ReadLine()
    End Sub

End Module

注釈

クラスGeoCoordinateWatcherは、現在の場所プロバイダーからの座標ベースの位置データを提供します。The GeoCoordinateWatcher class supplies coordinate-based location data from the current location provider. 現在の場所プロバイダーの優先順位は、すべてのプロバイダーからのデータの有効期間と精度、位置情報アプリケーションによって要求される精度、電力消費とパフォーマンスへの影響など、さまざまな要因に基づいて決定されます。場所プロバイダーに関連付けられています。The current location provider is prioritized as the highest on the computer, based on a number of factors, such as the age and accuracy of the data from all providers, the accuracy requested by location applications, and the power consumption and performance impact associated with the location provider. 現在の場所プロバイダーは、時間の経過と共に変化することがあります。たとえば、GPS デバイスがサテライト信号屋内でを紛失し、Wi-fi 三通貨のプロバイダーがコンピューターの最も正確なプロバイダーになります。The current location provider might change over time, for instance, when a GPS device loses its satellite signal indoors and a Wi-Fi triangulation provider becomes the most accurate provider on the computer.

位置データへのアクセスを開始するGeoCoordinateWatcherにはStartTryStartを作成し、またはを呼び出して、現在の場所プロバイダーからのデータの取得を開始します。To begin accessing location data, create a GeoCoordinateWatcher and call Start or TryStart to initiate the acquisition of data from the current location provider.

プロパティStatusをチェックして、データが使用可能かどうかを確認できます。The Status property can be checked to determine if data is available. データが使用可能な場合は、 Positionプロパティから1回の場所を取得するか、 PositionChangedイベントを処理することによって、連続する場所の更新を受け取ることができます。If data is available, you can get the location one time from the Position property, or receive continuous location updates by handling the PositionChanged event.

PermissionStatusおよびINotifyPropertyChangedの各プロパティは、アプリケーションがこれらのプロパティにデータをバインドできるようにをサポートしています。 PositionThe Permission, Status, and Position properties support INotifyPropertyChanged, so that an application can data-bind to these properties.

Windows 7 では、場所System.Device.Locationプロバイダーがインストールされていて、コンピューターの場所を解決できる場合、すべてのクラスが完全に機能します。In Windows 7, all the System.Device.Location classes are fully functional if a location provider is installed and able to resolve the computer's location.

注意

Windows 7 Starter Edition では、サポートされている場所プロバイダーはコントロールパネルの既定の場所プロバイダーだけであり、緯度と経度を指定するためにアドインをインストールする必要があります。On Windows 7 Starter Edition, the only supported location provider is the Default Location Provider in Control Panel, and an add-in must be installed to specify latitude and longitude.

メモWindows 7 より前のバージョンの Windows では、次の条件が適用されます。Note In versions of Windows prior to Windows 7, the following conditions apply:

コンストラクター

GeoCoordinateWatcher()

既定の精度設定を使用して、GeoCoordinateWatcher の新しいインスタンスを初期化します。Initializes a new instance of GeoCoordinateWatcher with default accuracy settings.

GeoCoordinateWatcher(GeoPositionAccuracy)

精度レベルを指定して、GeoCoordinateWatcher の新しいインスタンスを初期化します。Initializes a new instance of GeoCoordinateWatcher, given an accuracy level.

プロパティ

DesiredAccuracy

GeoCoordinateWatcher によって提供される場所データの、要求された精度レベル。The requested accuracy level for the location data that is provided by the GeoCoordinateWatcher.

MovementThreshold

場所プロバイダーが別の PositionChanged イベントを発生させるために必要な、最後の PositionChanged イベントの座標からの相対的なメートル単位の移動距離。The distance that must be moved, in meters, relative to the coordinate from the last PositionChanged event, before the location provider raises another PositionChanged event.

Permission

場所プロバイダーからの場所データにアクセスするためのアクセス許可が付与されているか、拒否されているかを示します。Indicates whether permission to access location data from location providers has been granted or denied.

Position

現在の場所を示す GeoCoordinate を取得します。Gets the GeoCoordinate which indicates the current location.

Status

GeoCoordinateWatcher の現在の状態を取得します。Gets the current status of the GeoCoordinateWatcher.

メソッド

Dispose()

GeoCoordinateWatcher クラスの現在のインスタンスによって使用されているすべてのリソースを解放します。Releases all resources that are used by the current instance of the GeoCoordinateWatcher class.

Dispose(Boolean)

GeoCoordinateWatcher クラスの現在のインスタンスによって使用されているすべてのリソースを解放します。Releases all resources used by the current instance of the GeoCoordinateWatcher class.

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判定します。Determines whether the specified object is equal to the current object.

(継承元 Object)
Finalize()

GeoCoordinateWatcher がガベージ コレクションによって回収される前にリソースを解放し、その他のクリーンアップ操作を実行します。Frees resources and performs other cleanup operations before the GeoCoordinateWatcher is reclaimed by garbage collection.

GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
OnPositionChanged(GeoPositionChangedEventArgs<GeoCoordinate>)

PositionChanged イベントが発生すると呼び出されます。Called when a PositionChanged event occurs.

OnPositionStatusChanged(GeoPositionStatusChangedEventArgs)

StatusChanged イベントが発生すると呼び出されます。Called when a StatusChanged event occurs.

OnPropertyChanged(String)

GeoCoordinateWatcher のプロパティが変更されると呼び出されます。Called when a property of the GeoCoordinateWatcher changes.

Start()

現在の場所プロバイダーからのデータの取得を示します。Initiate the acquisition of data from the current location provider. このメソッドは、PositionChanged イベントを有効にし、Position プロパティにアクセスできるようにします。This method enables PositionChanged events and allows access to the Position property.

Start(Boolean)

現在の場所プロバイダーからのデータの取得を示します。Initiate the acquisition of data from the current location provider. このメソッドは、PositionChanged イベントを有効にし、Position プロパティにアクセスできるようにします。This method enables PositionChanged events and allows access to the Position property.

Stop()

GeoCoordinateWatcher による場所データとイベントの提供を停止します。Stops the GeoCoordinateWatcher from providing location data and events.

ToString()

現在のオブジェクトを表す string を返します。Returns a string that represents the current object.

(継承元 Object)
TryStart(Boolean, TimeSpan)

現在の場所プロバイダーからのデータの取得を開始します。Initiates the acquisition of data from the current location provider. このメソッドは同期的に返ります。This method returns synchronously.

イベント

PositionChanged

場所データの緯度または経度が変化したことを示します。Indicates that the latitude or longitude of the location data has changed.

StatusChanged

GeoCoordinateWatcher オブジェクトの状態が変化したことを示します。Indicates that the status of the GeoCoordinateWatcher object has changed.

明示的なインターフェイスの実装

IGeoPositionWatcher<GeoCoordinate>.PositionChanged

場所データが変化したことを示します。Indicates that the location data has changed.

IGeoPositionWatcher<GeoCoordinate>.StatusChanged

場所プロバイダーの状態が変化したことを示します。Indicates that the status of the location provider has changed.

INotifyPropertyChanged.PropertyChanged

Status プロパティ、Position プロパティ、または Permission プロパティが変化したことを示します。Indicates that the Status property, the Position property, or the Permission property has changed.

適用対象