GeoCoordinateWatcher GeoCoordinateWatcher GeoCoordinateWatcher GeoCoordinateWatcher Class

定義

緯度と経度に基づいている装置場所データを調整します。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
継承
GeoCoordinateWatcherGeoCoordinateWatcherGeoCoordinateWatcherGeoCoordinateWatcher
属性
実装

次のプログラムを作成する方法を示しています、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を呼び出すとStartまたはTryStartの現在の場所プロバイダーからのデータの取得を開始します。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. 1 回、場所を取得することができますデータを使用できる場合、Positionプロパティ、または処理することにより継続的な場所の更新プログラムを受信、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、およびPositionプロパティ サポートINotifyPropertyChangedアプリケーションでこれらのプロパティにデータ-バインドできるようにします。The 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() GeoCoordinateWatcher() GeoCoordinateWatcher()

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

GeoCoordinateWatcher(GeoPositionAccuracy) GeoCoordinateWatcher(GeoPositionAccuracy) GeoCoordinateWatcher(GeoPositionAccuracy) GeoCoordinateWatcher(GeoPositionAccuracy)

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

プロパティ

DesiredAccuracy DesiredAccuracy DesiredAccuracy DesiredAccuracy

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

MovementThreshold MovementThreshold MovementThreshold 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 Permission Permission Permission

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

Position Position Position Position

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

Status Status Status Status

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

メソッド

Dispose() Dispose() Dispose() Dispose()

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

Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

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

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

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

(Inherited from Object)
Finalize() Finalize() Finalize() Finalize()

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

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

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

(Inherited from Object)
GetType() GetType() GetType() GetType()

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

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

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

(Inherited from Object)
OnPositionChanged(GeoPositionChangedEventArgs<GeoCoordinate>) OnPositionChanged(GeoPositionChangedEventArgs<GeoCoordinate>) OnPositionChanged(GeoPositionChangedEventArgs<GeoCoordinate>) OnPositionChanged(GeoPositionChangedEventArgs<GeoCoordinate>)

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

OnPositionStatusChanged(GeoPositionStatusChangedEventArgs) OnPositionStatusChanged(GeoPositionStatusChangedEventArgs) OnPositionStatusChanged(GeoPositionStatusChangedEventArgs) OnPositionStatusChanged(GeoPositionStatusChangedEventArgs)

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

OnPropertyChanged(String) OnPropertyChanged(String) OnPropertyChanged(String) OnPropertyChanged(String)

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

Start() Start() Start() 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) Start(Boolean) Start(Boolean) 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() Stop() Stop() Stop()

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

ToString() ToString() ToString() ToString()

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

(Inherited from Object)
TryStart(Boolean, TimeSpan) TryStart(Boolean, TimeSpan) TryStart(Boolean, TimeSpan) TryStart(Boolean, TimeSpan)

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

イベント

PositionChanged PositionChanged PositionChanged PositionChanged

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

StatusChanged StatusChanged StatusChanged StatusChanged

示しますの状態、GeoCoordinateWatcherオブジェクトが変更されました。Indicates that the status of the GeoCoordinateWatcher object has changed.

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

IGeoPositionWatcher<GeoCoordinate>.PositionChanged IGeoPositionWatcher<GeoCoordinate>.PositionChanged IGeoPositionWatcher<GeoCoordinate>.PositionChanged IGeoPositionWatcher<GeoCoordinate>.PositionChanged

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

IGeoPositionWatcher<GeoCoordinate>.StatusChanged IGeoPositionWatcher<GeoCoordinate>.StatusChanged IGeoPositionWatcher<GeoCoordinate>.StatusChanged IGeoPositionWatcher<GeoCoordinate>.StatusChanged

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

INotifyPropertyChanged.PropertyChanged INotifyPropertyChanged.PropertyChanged INotifyPropertyChanged.PropertyChanged INotifyPropertyChanged.PropertyChanged

示します、Statusプロパティ、Positionプロパティ、またはPermissionプロパティが変更されました。Indicates that the Status property, the Position property, or the Permission property has changed.

適用対象