GeoCoordinateWatcher Classe

Définition

Fournit des données de localisation basées sur des coordonnées de latitude et de longitude.Supplies location data that is based on latitude and longitude coordinates.

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>
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 un GeoCoordinateWatcher et commencer à acquérir des données à l’aide d’un délai d’attente d’initialisation.The following program shows how to create a GeoCoordinateWatcher and start acquiring data by using an initialization timeout. Le code imprime ensuite les coordonnées de l’emplacement, s’il est connu.The code then prints the coordinates of the location, if known.

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

Le programme suivant montre comment recevoir des mises à jour continues de l’emplacement en PositionChanged s’abonnant à des événements.The following program shows how to receive continuous location updates by subscribing to PositionChanged events.

using System;
using System.Device.Location;

namespace GetLocationEvent
{
    class Program
    {
        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 de localisation actuel.The GeoCoordinateWatcher class supplies coordinate-based location data from the current location provider. Le fournisseur d’emplacement actuel est classé par ordre de priorité 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 la consommation d’énergie et l’impact sur les performances. associé au fournisseur de localisation.The current location provider is prioritized as the highest on the computer, based on a number of factors, such as the age and accuracy of the data from all providers, the accuracy requested by location applications, and the power consumption and performance impact associated with the location provider. Le fournisseur d’emplacement actuel peut changer au fil du temps, par exemple, lorsqu’un appareil GPS perd son signal de satellite inporte et un fournisseur de triangulation Wi-Fi devient le fournisseur le plus précis sur l’ordinateur.The current location provider might change over time, for instance, when a GPS device loses its satellite signal indoors and a Wi-Fi triangulation provider becomes the most accurate provider on the computer.

Pour commencer à accéder aux données de l’emplacement GeoCoordinateWatcher , créez Start un TryStart et appelez ou pour initier l’acquisition des données à partir du fournisseur de localisation actuel.To begin accessing location data, create a GeoCoordinateWatcher and call Start or TryStart to initiate the acquisition of data from the current location provider.

La Status propriété peut être vérifiée pour déterminer si des données sont disponibles.The Status property can be checked to determine if data is available. Si des données sont disponibles, vous pouvez obtenir l’emplacement une fois à Position partir de la propriété ou recevoir des mises à jour continues PositionChanged de l’emplacement en gérant l’événement.If data is available, you can get the location one time from the Position property, or receive continuous location updates by handling the PositionChanged event.

Les Permissionpropriétés Status, INotifyPropertyChangedet Position prennent en charge, afin qu’une application puisse lier les données à ces propriétés.The Permission, Status, and Position properties support INotifyPropertyChanged, so that an application can data-bind to these properties.

Dans Windows 7, toutes les System.Device.Location classes sont entièrement fonctionnelles si un fournisseur de localisation est installé et en mesure de résoudre l’emplacement de l’ordinateur.In Windows 7, all the System.Device.Location classes are fully functional if a location provider is installed and able to resolve the computer's location.

Notes

Sur Windows 7 Édition Starter, le seul fournisseur de localisation 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.On Windows 7 Starter Edition, the only supported location provider is the Default Location Provider in Control Panel, and an add-in must be installed to specify latitude and longitude.

Remarque Dans les versions de Windows antérieures à Windows 7, les conditions suivantes s’appliquent :Note In versions of Windows prior to Windows 7, the following conditions apply:

Constructeurs

GeoCoordinateWatcher()

Initialise une nouvelle instance de GeoCoordinateWatcher avec les paramètres de précision par défaut.Initializes a new instance of GeoCoordinateWatcher with default accuracy settings.

GeoCoordinateWatcher(GeoPositionAccuracy)

Initialise une nouvelle instance de GeoCoordinateWatcher avec un niveau de précision.Initializes a new instance of GeoCoordinateWatcher, given an accuracy level.

Propriétés

DesiredAccuracy

Niveau de précision demandé pour les données d’emplacement fourni par le GeoCoordinateWatcher.The requested accuracy level for the location data that is provided by the 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.The distance that must be moved, in meters, relative to the coordinate from the last PositionChanged event, before the location provider raises another PositionChanged event.

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.Indicates whether permission to access location data from location providers has been granted or denied.

Position

Obtient le GeoCoordinate qui indique la localisation actuelle.Gets the GeoCoordinate which indicates the current location.

Status

Obtient l'état actuel de GeoCoordinateWatcher.Gets the current status of the GeoCoordinateWatcher.

Méthodes

Dispose()

Libère toutes les ressources qui sont utilisées par l'instance actuelle de la classe GeoCoordinateWatcher.Releases all resources that are used by the current instance of the GeoCoordinateWatcher class.

Dispose(Boolean)

Libère toutes les ressources utilisées par l'instance actuelle de la classe GeoCoordinateWatcher.Releases all resources used by the current instance of the GeoCoordinateWatcher class.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.Determines whether the specified object is equal to the current object.

(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.Frees resources and performs other cleanup operations before the GeoCoordinateWatcher is reclaimed by garbage collection.

GetHashCode()

Sert de fonction de hachage par défaut.Serves as the default hash function.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.Creates a shallow copy of the current Object.

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

Appelée lorsqu'un événement PositionChanged se produit.Called when a PositionChanged event occurs.

OnPositionStatusChanged(GeoPositionStatusChangedEventArgs)

Appelée lorsqu'un événement StatusChanged se produit.Called when a StatusChanged event occurs.

OnPropertyChanged(String)

Appelée lorsqu'une propriété de GeoCoordinateWatcher est modifiée.Called when a property of the GeoCoordinateWatcher changes.

Start()

Initie l'acquisition des données à partir du fournisseur de localisation actuel.Initiate the acquisition of data from the current location provider. Cette méthode active les événements PositionChanged et permet d'accéder à la propriété Position.This method enables PositionChanged events and allows access to the Position property.

Start(Boolean)

Initie l'acquisition des données à partir du fournisseur de localisation actuel.Initiate the acquisition of data from the current location provider. Cette méthode active les événements PositionChanged et permet d'accéder à la propriété Position.This method enables PositionChanged events and allows access to the Position property.

Stop()

Fait en sorte que GeoCoordinateWatcher cesse de fournir des données de localisation et des événements.Stops the GeoCoordinateWatcher from providing location data and events.

ToString()

Retourne une chaîne qui représente l'objet en cours.Returns a string that represents the current object.

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

Lance l'acquisition des données issues du fournisseur de localisation actif.Initiates the acquisition of data from the current location provider. Cette méthode est retournée de façon synchrone.This method returns synchronously.

Événements

PositionChanged

Indique que la latitude ou la longitude des données de localisation a changé.Indicates that the latitude or longitude of the location data has changed.

StatusChanged

Indique que l'état de l'objet GeoCoordinateWatcher a changé.Indicates that the status of the GeoCoordinateWatcher object has changed.

Implémentations d’interfaces explicites

IGeoPositionWatcher<GeoCoordinate>.PositionChanged

Indique que les données de localisation ont changé.Indicates that the location data has changed.

IGeoPositionWatcher<GeoCoordinate>.StatusChanged

Indique que l'état du fournisseur de localisation a changé.Indicates that the status of the location provider has changed.

INotifyPropertyChanged.PropertyChanged

Indique que la propriété Status, la propriété Position ou la propriété Permission a été modifiée.Indicates that the Status property, the Position property, or the Permission property has changed.

S’applique à