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ş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ı 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 olurUnknown.
Hiçbir konum olayı tetiklenemez.
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. |