GeoCoordinateWatcher 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
위도 및 경도 좌표를 기준으로 하는 위치 데이터를 공급합니다.
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>
[<System.Security.SecurityCritical>]
type GeoCoordinateWatcher = class
interface IDisposable
interface INotifyPropertyChanged
interface IGeoPositionWatcher<GeoCoordinate>
Public Class GeoCoordinateWatcher
Implements IDisposable, IGeoPositionWatcher(Of GeoCoordinate), INotifyPropertyChanged
- 상속
-
GeoCoordinateWatcher
- 특성
- 구현
예제
다음 프로그램을 만드는 방법을 보여 줍니다는 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.");
}
}
}
}
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 이벤트입니다.
using System;
using System.Device.Location;
namespace GetLocationEvent
{
class AsyncProgram
{
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 클래스는 현재 위치 공급자 로부터 좌표 기반 위치 데이터를 제공 합니다. 현재 위치 공급자는 컴퓨터에서 가장 높은 수를 기준으로 보존 기간 및 모든 공급자에서 데이터의 정확성 등의 요인 위치 애플리케이션에서 요청 된 정확도 전력 소비 및 성능에 영향을 우선 순위가 지정 됩니다. 위치 공급자를 사용 하 여 연결 합니다. 현재 위치 공급자는 시간이 지남에 따라 예를 들어 경우 GPS 디바이스 실내 해당 위성 신호를 잃고 Wi-fi 삼각형 분할 공급자 컴퓨터의 가장 정확한 공급자가 변경 될 수 있습니다.
위치 데이터에 액세스 하려면 만들기를 GeoCoordinateWatcher 호출 Start 또는 TryStart 현재 위치 공급자 로부터 데이터를 가져오기 시작 합니다.
Status 데이터 사용할 수 있는지 확인 하려면 속성을 확인할 수 있습니다. 데이터를 사용할 수 있는 경우 가져올 수 있습니다 위치에서 한 번 합니다 Position 속성 또는 처리 하 여 연속 위치 업데이트를 수신 합니다 PositionChanged 이벤트입니다.
합니다 Permission, Status, 및 Position 속성 지원 INotifyPropertyChanged애플리케이션 데이터 바인딩할 수 이러한 속성에 있도록 합니다.
Windows 7, 모든는 System.Device.Location 클래스는 위치 공급자가 설치 되어 작동 하는 컴퓨터의 위치를 확인할 수 있습니다.
참고
Windows 7 Starter Edition을만 지원 되는 위치 공급자가 제어판에서 기본 위치 공급자에 추가 기능을 설치 해야 위도 및 경도 지정 합니다.
참고 버전의 Windows 7 이전의 Windows에서는 다음 조건이 적용 합니다.
모든 System.Device.Location 생성자에 있는 개체를 만들 수 있습니다, 있지만 Status 속성 값은 항상 Disabled합니다.
위치 이벤트가 발생 합니다.
생성자
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가 회수되기 전에 리소스를 해제하고 기타 정리 작업을 수행합니다. |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
OnPositionChanged(GeoPositionChangedEventArgs<GeoCoordinate>) |
PositionChanged 이벤트가 발생할 때 호출됩니다. |
OnPositionStatusChanged(GeoPositionStatusChangedEventArgs) |
StatusChanged 이벤트가 발생할 때 호출됩니다. |
OnPropertyChanged(String) |
GeoCoordinateWatcher의 속성이 변경되면 호출됩니다. |
Start() |
현재 위치 공급자로부터 데이터를 가져오기 시작합니다. 이 메서드는 PositionChanged 이벤트를 사용하도록 설정하고 Position 속성에 대한 액세스를 허용합니다. |
Start(Boolean) |
현재 위치 공급자로부터 데이터를 가져오기 시작합니다. 이 메서드는 PositionChanged 이벤트를 사용하도록 설정하고 Position 속성에 대한 액세스를 허용합니다. |
Stop() |
GeoCoordinateWatcher가 위치 데이터 및 이벤트를 더 이상 제공하지 않도록 합니다. |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
TryStart(Boolean, TimeSpan) |
현재 위치 공급자로부터 데이터를 가져오기 시작합니다. 이 메서드는 동기적으로 반환됩니다. |
이벤트
PositionChanged |
위치 데이터의 위도 또는 경도가 변경되었음을 나타냅니다. |
StatusChanged |
GeoCoordinateWatcher 개체의 상태가 변경되었음을 나타냅니다. |
명시적 인터페이스 구현
IGeoPositionWatcher<GeoCoordinate>.PositionChanged |
위치 데이터가 변경되었음을 나타냅니다. |
IGeoPositionWatcher<GeoCoordinate>.StatusChanged |
위치 공급자의 상태가 변경되었음을 나타냅니다. |
INotifyPropertyChanged.PropertyChanged |
Status 속성, Position 속성 또는 Permission 속성이 변경되었음을 나타냅니다. |
적용 대상
.NET