Aracılığıyla paylaş


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şturma GeoCoordinateWatcher ve veri alma işlemini başlatma işlemini 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)
            {
                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 programda olaylara abone olarak sürekli konum güncelleştirmelerinin nasıl alındığı PositionChanged gösterilmektedir.

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. Geçerli konum sağlayıcısı, 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 göre 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ı haline geldiğinde, 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, özelliğinden Position bir kez konumu alabilir veya olayı işleyerek PositionChanged sürekli konum güncelleştirmeleri 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 tamamen işlevseldir.

Uyarı

Windows 7 Starter Edition'da, desteklenen tek konum sağlayıcısı Denetim Masası'ndaki 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

Name Description
GeoCoordinateWatcher()

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

GeoCoordinateWatcher(GeoPositionAccuracy)

Doğruluk düzeyine göre yeni bir örneğini GeoCoordinateWatcherbaşlatır.

Özellikler

Name Description
DesiredAccuracy

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

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 uzaklık.

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

Name Description
Dispose()

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

Dispose(Boolean)

Sınıfın geçerli örneği GeoCoordinateWatcher 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ı boşaltıp atık 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()

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

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

Geçerli Objectbasit 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 bir dize 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

Name Description
PositionChanged

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

StatusChanged

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

Belirtik Arabirim Kullanımları

Name Description
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