GeoCoordinateWatcher Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt Positionsdaten an, die auf Breiten- und Längenkoordinaten basieren.
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
- Vererbung
-
GeoCoordinateWatcher
- Attribute
- Implementiert
Beispiele
Das folgende Programm zeigt, wie Sie ein GeoCoordinateWatcher -Objekt erstellen und mit dem Abrufen von Daten mithilfe eines Initialisierungstimeouts beginnen. Der Code gibt dann die Koordinaten der Position aus, sofern bekannt.
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
Das folgende Programm zeigt, wie Sie fortlaufende Standortupdates erhalten, indem Sie Ereignisse abonnieren PositionChanged .
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
Hinweise
Die GeoCoordinateWatcher -Klasse stellt koordinatenbasierte Standortdaten vom aktuellen Standortanbieter bereit. Der aktuelle Standortanbieter wird basierend auf einer Reihe von Faktoren als der höchste auf dem Computer priorisiert, z. B. das Alter und die Genauigkeit der Daten aller Anbieter, die von Standortanwendungen angeforderte Genauigkeit sowie die Energieverbrauchs- und Leistungsbeeinträchtigungen, die mit dem Standortanbieter verbunden sind. Der aktuelle Standortanbieter kann sich im Laufe der Zeit ändern, instance, wenn ein GPS-Gerät sein Satellitensignal im Innenbereich verliert und ein Wi-Fi Triangulationsanbieter zum genauesten Anbieter auf dem Computer wird.
Um mit dem Zugriff auf Standortdaten zu beginnen, erstellen Sie ein GeoCoordinateWatcher , und rufen Sie Start auf, oder TryStart um die Erfassung von Daten vom aktuellen Standortanbieter zu initiieren.
Die Status -Eigenschaft kann überprüft werden, um festzustellen, ob Daten verfügbar sind. Wenn Daten verfügbar sind, können Sie den Standort einmal von der Position -Eigenschaft abrufen oder fortlaufende Standortaktualisierungen erhalten, indem Sie das PositionChanged Ereignis behandeln.
Die PermissionEigenschaften , Statusund Position unterstützen INotifyPropertyChanged, damit eine Anwendung Daten an diese Eigenschaften binden kann.
In Windows 7 sind alle System.Device.Location Klassen voll funktionsfähig, wenn ein Standortanbieter installiert ist und den Speicherort des Computers auflösen kann.
Hinweis
Unter Windows 7 Starter Edition ist der einzige unterstützte Speicherortanbieter der Standardspeicherortanbieter in Systemsteuerung, und zum Angeben des Breiten- und Längengrads muss ein Add-In installiert werden.
Hinweis In Windows-Versionen vor Windows 7 gelten die folgenden Bedingungen:
Alle System.Device.Location Objekte mit Konstruktoren können erstellt werden, aber die Status -Eigenschaft hat immer den Wert Disabled.
Der durch die Location -Eigenschaft von Position angegebene Speicherort ist Unknownimmer .
Es werden keine Standortereignisse ausgelöst.
Konstruktoren
GeoCoordinateWatcher() |
Initialisiert eine neue Instanz von GeoCoordinateWatcher mit Standardeinstellungen für die Genauigkeit. |
GeoCoordinateWatcher(GeoPositionAccuracy) |
Initialisiert eine neue Instanz von GeoCoordinateWatcher, wobei die Genauigkeitsstufe angegeben ist. |
Eigenschaften
DesiredAccuracy |
Die angeforderte Genauigkeitsstufe für die Positionsdaten, die vom GeoCoordinateWatcher bereitgestellt wird. |
MovementThreshold |
Die Bewegungsentfernung in Metern relativ zur Koordinate des letzten PositionChanged-Ereignisses, die zurückgelegt werden muss, bevor der Ortungsanbieter ein weiteres PositionChanged-Ereignis auslöst. |
Permission |
Gibt an, ob die Berechtigung für den Zugriff auf Positionsdaten von Ortungsanbietern gewährt oder verweigert wurde. |
Position |
Ruft die GeoCoordinate ab, die die aktuelle Position angibt. |
Status |
Ruft den aktuellen Status von GeoCoordinateWatcher ab. |
Methoden
Dispose() |
Gibt alle von der aktuellen Instanz der GeoCoordinateWatcher-Klasse verwendeten Ressourcen frei. |
Dispose(Boolean) |
Gibt alle von der aktuellen Instanz der GeoCoordinateWatcher-Klasse verwendeten Ressourcen frei. |
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
Finalize() |
Gibt Ressourcen frei und führt andere Bereinigungsvorgänge durch, bevor das GeoCoordinateWatcher durch die Garbage Collection wieder freigegeben wird. |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
OnPositionChanged(GeoPositionChangedEventArgs<GeoCoordinate>) |
Wird aufgerufen, wenn ein PositionChanged-Ereignis auftritt. |
OnPositionStatusChanged(GeoPositionStatusChangedEventArgs) |
Wird aufgerufen, wenn ein StatusChanged-Ereignis auftritt. |
OnPropertyChanged(String) |
Wird aufgerufen, wenn eine Eigenschaft des GeoCoordinateWatcher geändert wird. |
Start() |
Initiiert die Erfassung von Daten vom aktuellen Ortungsanbieter. Diese Methode aktiviert PositionChanged-Ereignisse und ermöglicht den Zugriff auf die Position-Eigenschaft. |
Start(Boolean) |
Initiiert die Erfassung von Daten vom aktuellen Ortungsanbieter. Diese Methode aktiviert PositionChanged-Ereignisse und ermöglicht den Zugriff auf die Position-Eigenschaft. |
Stop() |
Beendet die Bereitstellung von Positionsdaten und Ortungsereignissen durch den GeoCoordinateWatcher. |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
TryStart(Boolean, TimeSpan) |
Initiiert die Erfassung von Daten vom aktuellen Ortungsanbieter. Die Rückgabe der Methode erfolgt synchron. |
Ereignisse
PositionChanged |
Gibt an, dass sich die Breiten- oder Längenkoordinate der Positionsdaten geändert hat. |
StatusChanged |
Gibt an, dass sich der Status des GeoCoordinateWatcher-Objekts geändert hat. |
Explizite Schnittstellenimplementierungen
IGeoPositionWatcher<GeoCoordinate>.PositionChanged |
Gibt an, dass die Positionsdaten geändert wurden. |
IGeoPositionWatcher<GeoCoordinate>.StatusChanged |
Gibt an, dass der Status des Ortungsanbieters geändert wurde. |
INotifyPropertyChanged.PropertyChanged |
Gibt an, dass die Status-Eigenschaft, die Position-Eigenschaft oder die Permission-Eigenschaft geändert wurde. |