GeoCoordinateWatcher Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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ı olan tüm System.Device.Location nesneler oluşturulabilir, ancak Status özelliği her zaman değerine Disabledsahip olur.
özelliği Position tarafından Location belirtilen konum her zaman olacaktırUnknown.
Hiçbir konum olayı tetiklenemez.
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. |