GeoCoordinateWatcher Sınıf

Tanım

Enlem ve boylam koordinatlarını temel alan konum verilerini sağlar.

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
Devralma
GeoCoordinateWatcher
Öznitelikler
Uygulamalar

Örnekler

Aşağıdaki program, başlatma zaman aşımını kullanarak veri oluşturmayı GeoCoordinateWatcher ve veri almaya başlamayı gösterir. Kod daha sonra biliniyorsa konumun koordinatlarını yazdırır.

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

Aşağıdaki program, olaylara abone olarak sürekli konum güncelleştirmelerinin nasıl alınılacağını PositionChanged gösterir.

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

Açıklamalar

sınıfı, GeoCoordinateWatcher geçerli konum sağlayıcısından koordinat tabanlı konum verileri sağlar. Tüm sağlayıcılardan alınan verilerin yaşı ve doğruluğu, konum uygulamaları tarafından istenen doğruluk ve konum sağlayıcısıyla ilişkili güç tüketimi ve performans etkisi gibi bir dizi faktöre bağlı olarak, geçerli konum sağlayıcısı bilgisayarda en yüksek öncelik olarak önceliklendirilir. Örneğin, bir GPS cihazı iç mekanda uydu sinyalini kaybettiğinde ve Wi-Fi bir üçgenleme sağlayıcısı bilgisayardaki en doğru sağlayıcı olduğunda, geçerli konum sağlayıcısı zaman içinde değişebilir.

Konum verilerine erişmeye başlamak için bir GeoCoordinateWatcher ve çağrısı Start oluşturun veya TryStart geçerli konum sağlayıcısından veri alımını başlatın.

Özelliği Status , verilerin kullanılabilir olup olmadığını belirlemek için denetlenebilir. Veriler varsa, konumu özelliğinden Position bir kez alabilir veya olayı işleyerek PositionChanged sürekli konum güncelleştirmelerini alabilirsiniz.

Permission, Statusve Position özellikleri, bir uygulamanın bu özelliklere veri bağlaması için öğesini desteklerINotifyPropertyChanged.

Windows 7'de, bir konum sağlayıcısı yüklüyse ve bilgisayarın konumunu çözümleyebiliyorsa tüm System.Device.Location sınıflar tam olarak işlevseldir.

Not

Windows 7 Starter Edition'da desteklenen tek konum sağlayıcısı Denetim Masası'daki Varsayılan Konum Sağlayıcısı'dır ve enlem ve boylam belirtmek için bir eklenti yüklenmelidir.

Not Windows'un Windows 7 öncesi sürümlerinde aşağıdaki koşullar geçerlidir:

Oluşturucular

GeoCoordinateWatcher()

Yeni bir örneğini GeoCoordinateWatcher varsayılan doğruluk ayarlarıyla başlatır.

GeoCoordinateWatcher(GeoPositionAccuracy)

Doğruluk düzeyi verilip yeni bir örneğini GeoCoordinateWatcherbaşlatır.

Özellikler

DesiredAccuracy

tarafından GeoCoordinateWatchersağlanan konum verileri için istenen doğruluk düzeyi.

MovementThreshold

Konum sağlayıcısı başka bir PositionChanged olay tetiklemeden önce, metreler içinde, son PositionChanged olaydan koordinata göre taşınması gereken mesafe.

Permission

Konum sağlayıcılarından konum verilerine erişim izni verilip verilmediğini gösterir.

Position

GeoCoordinate Geçerli konumu gösteren öğesini alır.

Status

geçerli durumunu GeoCoordinateWatcheralır.

Yöntemler

Dispose()

Sınıfının geçerli örneği GeoCoordinateWatcher tarafından kullanılan tüm kaynakları serbest bırakır.

Dispose(Boolean)

GeoCoordinateWatcher sınıfının geçerli örneği tarafından kullanılan tüm kaynakları serbest bırakır.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
Finalize()

kaynakları serbest kaldırır ve çöp toplama tarafından geri kazanılmadan önce GeoCoordinateWatcher diğer temizleme işlemlerini gerçekleştirir.

GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
OnPositionChanged(GeoPositionChangedEventArgs<GeoCoordinate>)

Bir PositionChanged olay gerçekleştiğinde çağrılır.

OnPositionStatusChanged(GeoPositionStatusChangedEventArgs)

Bir StatusChanged olay gerçekleştiğinde çağrılır.

OnPropertyChanged(String)

Değişikliklerin bir özelliği olduğunda çağrılır GeoCoordinateWatcher .

Start()

Geçerli konum sağlayıcısından veri alımını başlatın. Bu yöntem olayları etkinleştirir PositionChanged ve özelliğine Position erişim sağlar.

Start(Boolean)

Geçerli konum sağlayıcısından veri alımını başlatın. Bu yöntem olayları etkinleştirir PositionChanged ve özelliğine Position erişim sağlar.

Stop()

öğesinin GeoCoordinateWatcher konum verileri ve olayları sağlamasını durdurur.

ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)
TryStart(Boolean, TimeSpan)

Geçerli konum sağlayıcısından veri alımını başlatır. Bu yöntem zaman uyumlu olarak döndürür.

Ekinlikler

PositionChanged

Konum verilerinin enlem veya boylamının değiştiğini gösterir.

StatusChanged

Nesnenin durumunun GeoCoordinateWatcher değiştiğini gösterir.

Belirtik Arabirim Kullanımları

IGeoPositionWatcher<GeoCoordinate>.PositionChanged

Konum verilerinin değiştiğini gösterir.

IGeoPositionWatcher<GeoCoordinate>.StatusChanged

Konum sağlayıcısının durumunun değiştiğini gösterir.

INotifyPropertyChanged.PropertyChanged

Özelliğin Status , özelliğin Position veya özelliğin Permission değiştiğini gösterir.

Şunlara uygulanır