GeoCoordinateWatcher Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Fournit des données d’emplacement basées sur les coordonnées de latitude et de longitude.
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
- Héritage
-
GeoCoordinateWatcher
- Attributs
- Implémente
Exemples
Le programme suivant montre comment créer et GeoCoordinateWatcher commencer à acquérir des données à l’aide d’un délai d’initialisation. Le code imprime ensuite les coordonnées de l’emplacement, le cas échéant.
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
Le programme suivant montre comment recevoir des mises à jour d’emplacement continus en s’abonnant aux PositionChanged événements.
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
Remarques
La GeoCoordinateWatcher classe fournit des données d’emplacement basées sur des coordonnées à partir du fournisseur d’emplacement actuel. Le fournisseur d’emplacement actuel est hiérarchisé comme le plus élevé sur l’ordinateur, en fonction d’un certain nombre de facteurs, tels que l’âge et la précision des données de tous les fournisseurs, la précision demandée par les applications de localisation, ainsi que l’impact sur la consommation d’énergie et les performances associés au fournisseur d’emplacement. Le fournisseur d’emplacement actuel peut changer au fil du temps, par exemple, lorsqu’un appareil GPS perd son signal satellite à l’intérieur et qu’un fournisseur de triangulation Wi-Fi devient le fournisseur le plus précis sur l’ordinateur.
Pour commencer à accéder aux données d’emplacement, créez un GeoCoordinateWatcher appel et appelez Start ou TryStart lancez l’acquisition de données à partir du fournisseur d’emplacement actuel.
La Status propriété peut être vérifiée pour déterminer si les données sont disponibles. Si des données sont disponibles, vous pouvez obtenir l’emplacement une fois à partir de la Position propriété ou recevoir des mises à jour d’emplacement continues en gérant l’événement PositionChanged .
Le Permission, Statuset Position les propriétés prennent en charge INotifyPropertyChanged, afin qu’une application puisse lier des données à ces propriétés.
Dans Windows 7, toutes les System.Device.Location classes sont entièrement fonctionnelles si un fournisseur d’emplacement est installé et capable de résoudre l’emplacement de l’ordinateur.
Note
Sur Windows 7 Starter Edition, le seul fournisseur d’emplacement pris en charge est le fournisseur d’emplacement par défaut dans le Panneau de configuration, et un complément doit être installé pour spécifier la latitude et la longitude.
Note Dans les versions de Windows antérieures à Windows 7, les conditions suivantes s’appliquent :
Tous les System.Device.Location objets qui ont des constructeurs peuvent être créés, mais la Status propriété aura toujours la valeur Disabled.
L’emplacement indiqué par la Location propriété de Position sera toujours Unknown.
Aucun événement d’emplacement n’est déclenché.
Constructeurs
| Nom | Description |
|---|---|
| GeoCoordinateWatcher() |
Initialise une nouvelle instance avec les paramètres de GeoCoordinateWatcher précision par défaut. |
| GeoCoordinateWatcher(GeoPositionAccuracy) |
Initialise une nouvelle instance de GeoCoordinateWatcher, en fonction d’un niveau de précision. |
Propriétés
| Nom | Description |
|---|---|
| DesiredAccuracy |
Obtient le niveau de précision demandé pour les données d’emplacement fournies par le GeoCoordinateWatcher. |
| MovementThreshold |
Distance qui doit être déplacée, en mètres, par rapport à la coordonnée du dernier PositionChanged événement, avant que le fournisseur d’emplacement déclenche un autre PositionChanged événement. |
| Permission |
Indique si l’autorisation d’accéder aux données d’emplacement à partir de fournisseurs d’emplacements a été accordée ou refusée. |
| Position |
Obtient le GeoCoordinate paramètre qui indique l’emplacement actuel. |
| Status |
Obtient l’état actuel du GeoCoordinateWatcher. |
Méthodes
| Nom | Description |
|---|---|
| Dispose() |
Libère toutes les ressources utilisées par l’instance actuelle de la GeoCoordinateWatcher classe. |
| Dispose(Boolean) |
Libère toutes les ressources utilisées par l’instance actuelle de la GeoCoordinateWatcher classe. |
| Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
| Finalize() |
Libère les ressources et effectue d’autres opérations de nettoyage avant la GeoCoordinateWatcher récupération par le garbage collection. |
| GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| OnPositionChanged(GeoPositionChangedEventArgs<GeoCoordinate>) |
Appelé lorsqu’un PositionChanged événement se produit. |
| OnPositionStatusChanged(GeoPositionStatusChangedEventArgs) |
Appelé lorsqu’un StatusChanged événement se produit. |
| OnPropertyChanged(String) |
Appelé lorsqu’une propriété des GeoCoordinateWatcher modifications est modifiée. |
| Start() |
Lancez l’acquisition de données à partir du fournisseur d’emplacement actuel. Cette méthode active les PositionChanged événements et autorise l’accès à la Position propriété. |
| Start(Boolean) |
Lancez l’acquisition de données à partir du fournisseur d’emplacement actuel. Cette méthode active les PositionChanged événements et autorise l’accès à la Position propriété. |
| Stop() |
Empêche la GeoCoordinateWatcher fourniture de données et d’événements d’emplacement. |
| ToString() |
Retourne une chaîne qui représente l’objet actuel. (Hérité de Object) |
| TryStart(Boolean, TimeSpan) |
Lance l’acquisition de données à partir du fournisseur d’emplacement actuel. Cette méthode retourne de façon synchrone. |
Événements
| Nom | Description |
|---|---|
| PositionChanged |
Indique que la latitude ou la longitude des données d’emplacement a changé. |
| StatusChanged |
Indique que l’état de l’objet GeoCoordinateWatcher a changé. |
Implémentations d’interfaces explicites
| Nom | Description |
|---|---|
| IGeoPositionWatcher<GeoCoordinate>.PositionChanged |
Indique que les données d’emplacement ont changé. |
| IGeoPositionWatcher<GeoCoordinate>.StatusChanged |
Indique que l’état du fournisseur d’emplacement a changé. |
| INotifyPropertyChanged.PropertyChanged |
Indique que la Status propriété, la Position propriété ou la Permission propriété a changé. |