Lire en anglais

Partager via


GeoCoordinateWatcher Classe

Définition

Fournit des données de localisation basées sur des coordonnées de latitude et de longitude.

C#
[System.Security.SecurityCritical]
public class GeoCoordinateWatcher : IDisposable, System.ComponentModel.INotifyPropertyChanged, System.Device.Location.IGeoPositionWatcher<System.Device.Location.GeoCoordinate>
Héritage
GeoCoordinateWatcher
Attributs
Implémente

Exemples

Le programme suivant montre comment créer un et commencer à acquérir des GeoCoordinateWatcher données à l’aide d’un délai d’initialisation. Le code imprime ensuite les coordonnées de l’emplacement, le cas échéant.

C#
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.");
            }
        }
    }
}

Le programme suivant montre comment recevoir des mises à jour d’emplacement continues en s’abonnant à PositionChanged des événements.

C#
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);
            }
        }
    }
}

Remarques

La GeoCoordinateWatcher classe fournit des données d’emplacement basées sur les coordonnées du fournisseur d’emplacement actuel. Le fournisseur d’emplacement actuel est classé par ordre de priorité comme étant 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 et 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, pour instance, 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 et appelez Start ou TryStart pour lancer l’acquisition de données à partir du fournisseur d’emplacement actuel.

La Status propriété peut être vérifiée pour déterminer si des 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 .

Les Permissionpropriétés , Statuset Position 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.

Notes

Sur Windows 7 Édition Starter Edition, le seul fournisseur d’emplacement pris en charge est le fournisseur d’emplacement par défaut dans 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 :

Constructeurs

GeoCoordinateWatcher()

Initialise une nouvelle instance de GeoCoordinateWatcher avec les paramètres de précision par défaut.

GeoCoordinateWatcher(GeoPositionAccuracy)

Initialise une nouvelle instance de GeoCoordinateWatcher avec un niveau de précision.

Propriétés

DesiredAccuracy

Niveau de précision demandé pour les données d’emplacement fourni par le GeoCoordinateWatcher.

MovementThreshold

Distance de déplacement, en mètres, par rapport à la coordonnée du dernier événement PositionChanged, avant que le fournisseur de localisation ne déclenche un autre événement PositionChanged.

Permission

Indique si l'autorisation d'accès aux données de localisation issues des fournisseurs de localisation a été accordée ou refusée.

Position

Obtient le GeoCoordinate qui indique la localisation actuelle.

Status

Obtient l'état actuel de GeoCoordinateWatcher.

Méthodes

Dispose()

Libère toutes les ressources qui sont utilisées par l'instance actuelle de la classe GeoCoordinateWatcher.

Dispose(Boolean)

Libère toutes les ressources utilisées par l'instance actuelle de la classe GeoCoordinateWatcher.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
Finalize()

Libère les ressources et exécute d’autres opérations de nettoyage avant la récupération du GeoCoordinateWatcher par la garbage collection.

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
OnPositionChanged(GeoPositionChangedEventArgs<GeoCoordinate>)

Appelée lorsqu'un événement PositionChanged se produit.

OnPositionStatusChanged(GeoPositionStatusChangedEventArgs)

Appelée lorsqu'un événement StatusChanged se produit.

OnPropertyChanged(String)

Appelée lorsqu'une propriété de GeoCoordinateWatcher est modifiée.

Start()

Initie l'acquisition des données à partir du fournisseur de localisation actuel. Cette méthode active les événements PositionChanged et permet d'accéder à la propriété Position.

Start(Boolean)

Initie l'acquisition des données à partir du fournisseur de localisation actuel. Cette méthode active les événements PositionChanged et permet d'accéder à la propriété Position.

Stop()

Fait en sorte que GeoCoordinateWatcher cesse de fournir des données de localisation et des événements.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)
TryStart(Boolean, TimeSpan)

Lance l'acquisition des données issues du fournisseur de localisation actif. Cette méthode est retournée de façon synchrone.

Événements

PositionChanged

Indique que la latitude ou la longitude des données de localisation a changé.

StatusChanged

Indique que l'état de l'objet GeoCoordinateWatcher a changé.

Implémentations d’interfaces explicites

IGeoPositionWatcher<GeoCoordinate>.PositionChanged

Indique que les données de localisation ont changé.

IGeoPositionWatcher<GeoCoordinate>.StatusChanged

Indique que l'état du fournisseur de localisation a changé.

INotifyPropertyChanged.PropertyChanged

Indique que la propriété Status, la propriété Position ou la propriété Permission a été modifiée.

S’applique à

Produit Versions
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1