내보내기(0) 인쇄
모두 확장
이 문서는 기계로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오. 추가 정보
번역
원본

GeoCoordinateWatcher 클래스

위도 및 경도 좌표를 기준으로 하는 위치 데이터를 공급합니다.

System.Object
  System.Device.Location.GeoCoordinateWatcher

네임스페이스:  System.Device.Location
어셈블리:  System.Device(System.Device.dll)

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

GeoCoordinateWatcher 형식에서는 다음과 같은 멤버를 노출합니다.

  이름설명
Public 메서드GeoCoordinateWatcher()기본 정확도 설정을 사용하여 GeoCoordinateWatcher의 새 인스턴스를 초기화합니다.
Public 메서드GeoCoordinateWatcher(GeoPositionAccuracy)지정된 정확도 수준으로 GeoCoordinateWatcher의 새 인스턴스를 초기화합니다.
위쪽

  이름설명
Public 속성DesiredAccuracy GeoCoordinateWatcher 에서 제공한 위치 데이터에 대해 요청된 정확도 수준입니다.
Public 속성MovementThreshold위치 공급자가 다른 PositionChanged 이벤트를 발생시키기 전에 마지막 PositionChanged 이벤트에서 이동해야 하는 좌표에 대한 상대적인 거리(미터 단위)입니다.
Public 속성Permission위치 공급자의 위치 데이터에 액세스할 수 있는 권한이 부여되었는지 아니면 거부되었는지를 나타냅니다.
Public 속성Position현재 위치를 나타내는 GeoCoordinate를 가져옵니다.
Public 속성Status GeoCoordinateWatcher 의 현재 상태를 가져옵니다.
위쪽

  이름설명
Public 메서드Dispose() GeoCoordinateWatcher 클래스의 현재 인스턴스에서 사용하는 모든 리소스를 해제합니다.
Protected 메서드Dispose(Boolean) GeoCoordinateWatcher 클래스의 현재 인스턴스에서 사용하는 모든 리소스를 해제합니다.
Public 메서드Equals(Object) 지정한 개체가 현재 개체와 같은지 여부를 확인합니다. (Object에서 상속됨)
Protected 메서드Finalize가비지 수집에서 GeoCoordinateWatcher를 회수하기 전에 리소스를 해제하고 기타 정리 작업을 수행합니다. (Object.Finalize()을(를) 재정의함)
Public 메서드GetHashCode기본 해시 함수로 작동합니다. (Object에서 상속됨)
Public 메서드GetType현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨)
Protected 메서드MemberwiseClone현재 Object의 단순 복사본을 만듭니다. (Object에서 상속됨)
Protected 메서드OnPositionChanged PositionChanged 이벤트가 발생할 때 호출됩니다.
Protected 메서드OnPositionStatusChanged StatusChanged 이벤트가 발생할 때 호출됩니다.
Protected 메서드OnPropertyChanged GeoCoordinateWatcher 의 속성이 변경되면 호출됩니다.
Public 메서드Start()현재 위치 공급자로부터 데이터를 가져오기 시작합니다. 이 메서드는 PositionChanged 이벤트를 사용하도록 설정하고 Position 속성에 대한 액세스를 허용합니다.
Public 메서드Start(Boolean)현재 위치 공급자로부터 데이터를 가져오기 시작합니다. 이 메서드는 PositionChanged 이벤트를 사용하도록 설정하고 Position 속성에 대한 액세스를 허용합니다.
Public 메서드Stop GeoCoordinateWatcher 가 위치 데이터 및 이벤트를 더 이상 제공하지 않도록 합니다.
Public 메서드ToString현재 개체를 나타내는 문자열을 반환합니다. (Object에서 상속됨)
Public 메서드TryStart현재 위치 공급자로부터 데이터를 가져오기 시작합니다. 이 메서드는 동기적으로 반환됩니다.
위쪽

  이름설명
Public 이벤트PositionChanged위치 데이터의 위도 또는 경도가 변경되었음을 나타냅니다.
Public 이벤트StatusChanged GeoCoordinateWatcher 개체의 상태가 변경되었음을 나타냅니다.
위쪽

  이름설명
명시적 인터페이스 구현Private 이벤트IGeoPositionWatcher<GeoCoordinate>.PositionChanged위치 데이터가 변경되었음을 나타냅니다.
명시적 인터페이스 구현Private 이벤트IGeoPositionWatcher<GeoCoordinate>.StatusChanged위치 공급자의 상태가 변경되었음을 나타냅니다.
명시적 인터페이스 구현Private 이벤트INotifyPropertyChanged.PropertyChanged Status 속성, Position 속성 또는 Permission 속성이 변경되었음을 나타냅니다.
위쪽

GeoCoordinateWatcher 클래스는 현재 위치 공급자로부터 좌표 기반 위치 데이터를 제공합니다. 현재 위치 공급자는 모든 공급자의 데이터 나이 및 정확도, 위치 응용 프로그램에서 요청한 정확도, 위치 공급자에 연결된 전력 소비 및 성능 효과 등 여러 가지 요소를 기준으로 컴퓨터에서 현재 우선 순위가 가장 높은 순위대로 유지됩니다. 현재 위치 공급자는 시간에 따라 변경할 수 있습니다. 예를 들어, GPS 장치가 실내 위성 신호를 잃어버리면 컴퓨터에서 Wi-Fi 삼각 공급자가 가장 정확한 공급자로 됩니다.

위치 데이터 액세스를 시작하려면 GeoCoordinateWatcher를 만든 후 Start 또는 TryStart를 호출하여 현재 위치 공급자로부터 데이터를 획득하기 시작해야 합니다.

Status 속성은 데이터가 이용될 수 있는지 확인할 수 있습니다. 데이터를 사용할 수 있는 경우, Position 속성에서 위치를 가져오거나 PositionChanged 이벤트를 처리하여 연속되는 위치 업데이트를 받을 수 있습니다.

Permission , StatusPosition 속성은 INotifyPropertyChanged를 지원하므로 응용 프로그램은 이러한 속성에 데이터 바인딩할 수 있습니다.

Windows 7에서는, 모든 System.Device.Location 클래스는 위치 공급자가 설치되어 있고 컴퓨터의 위치를 확인할 수 있을 경우 완전히 작동합니다.

참고참고

Windows 7 Starter Edition에서 지원되는 유일한 위치 공급자는 제어판의 기본 위치 공급자이며, 위도 및 경도를 지정하려면 추가 기능이 설치되어 있어야 합니다.

참고   Windows 7 이전 버전의 Windows에서는 다음 조건이 적용됩니다.

다음 프로그램은 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) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

커뮤니티 추가 항목

추가
표시:
© 2015 Microsoft