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. 데이터를 사용할 수 있는 경우 가져올 수 있습니다 위치에서 한 번 합니다 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.

합니다 Permission, Status, 및 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.

적용 대상