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şleminin nasıl başlatacağını 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 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. Tüm sağlayıcılardan gelen 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 ö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.

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

Permission, Statusve Position özellikleri, bir uygulamanın bu özelliklere veri bağlayabilmesi 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.

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 eklentinin yüklenmesi gerekir.

Not Windows'un Windows 7'den önceki 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üzeyine göre 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 halinde, 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

öğesinin geçerli durumunu GeoCoordinateWatcheralır.

Yöntemler

Dispose()

Sınıfı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 ve 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()

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)

Bir özelliği değiştiğinde ç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 izni verir.

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 izni verir.

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ğinin Status , özelliğinin Position veya özelliğinin Permission değiştiğini gösterir.

Şunlara uygulanır