GeoCoordinateWatcher Classe

Definizione

Fornisce i dati del percorso basati sulle coordinate della latitudine e della longitudine.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
Ereditarietà
GeoCoordinateWatcher
Attributi
Implementazioni

Esempi

Nel programma seguente viene illustrato come creare un GeoCoordinateWatcher e avviare l'acquisizione dei dati utilizzando un timeout di inizializzazione.The following program shows how to create a GeoCoordinateWatcher and start acquiring data by using an initialization timeout. Il codice stampa quindi le coordinate della posizione, se nota.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

Nel programma seguente viene illustrato come ricevere aggiornamenti del percorso continuo sottoscrivendo PositionChanged gli eventi.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

Commenti

La GeoCoordinateWatcher classe fornisce dati del percorso basato su coordinate dal provider di posizione corrente.The GeoCoordinateWatcher class supplies coordinate-based location data from the current location provider. Il provider di posizione corrente è classificato in ordine di priorità come il più alto nel computer, in base a diversi fattori, ad esempio l'età e l'accuratezza dei dati di tutti i provider, l'accuratezza richiesta dalle applicazioni di posizione e il consumo di energia e l'effetto sulle prestazioni associato al provider di posizione.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. Il provider di posizione corrente può variare nel tempo, ad esempio, quando un dispositivo GPS perde il suo interno di segnale satellite e un provider di triangolazione Wi-Fi diventa il provider più accurato nel computer.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.

Per iniziare ad accedere ai dati del percorso, GeoCoordinateWatcher creare un Start e TryStart chiamare o per avviare l'acquisizione dei dati dal provider di posizione corrente.To begin accessing location data, create a GeoCoordinateWatcher and call Start or TryStart to initiate the acquisition of data from the current location provider.

È Status possibile controllare la proprietà per determinare se i dati sono disponibili.The Status property can be checked to determine if data is available. Se i dati sono disponibili, è possibile ottenere il percorso una volta dalla Position proprietà o ricevere aggiornamenti del percorso continuo gestendo l' PositionChanged evento.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.

Le Permissionproprietà Status, e Position supportanoINotifyPropertyChanged, in modo che un'applicazione possa eseguire l'associazione dati a queste proprietà.The Permission, Status, and Position properties support INotifyPropertyChanged, so that an application can data-bind to these properties.

In Windows 7 tutte le System.Device.Location classi sono completamente funzionali se è installato un provider di posizione e in grado di risolvere il percorso del computer.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.

Nota

In Windows 7 Starter Edition, l'unico provider di percorsi supportato è il provider di posizione predefinito nel pannello di controllo ed è necessario installare un componente aggiuntivo per specificare latitudine e longitudine.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.

Nota Nelle versioni di Windows precedenti a Windows 7, si applicano le condizioni seguenti:Note In versions of Windows prior to Windows 7, the following conditions apply:

Costruttori

GeoCoordinateWatcher()

Consente di inizializzare una nuova istanza della classe GeoCoordinateWatcher con le impostazioni di accuratezza predefinite.Initializes a new instance of GeoCoordinateWatcher with default accuracy settings.

GeoCoordinateWatcher(GeoPositionAccuracy)

Inizializza una nuova istanza di GeoCoordinateWatcher, specificato un livello di accuratezza.Initializes a new instance of GeoCoordinateWatcher, given an accuracy level.

Proprietà

DesiredAccuracy

Livello di accuratezza richiesto per i dati del percorso fornito da GeoCoordinateWatcher.The requested accuracy level for the location data that is provided by the GeoCoordinateWatcher.

MovementThreshold

Distanza del movimento in metri, relativa alla coordinata dall'ultimo evento PositionChanged prima che il provider di posizione generi un altro evento 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

Indica se è stata concessa o negata l'autorizzazione per accedere ai dati del percorso dai provider di posizione.Indicates whether permission to access location data from location providers has been granted or denied.

Position

Ottiene GeoCoordinate che indica la posizione corrente.Gets the GeoCoordinate which indicates the current location.

Status

Ottiene lo stato corrente di the GeoCoordinateWatcher.Gets the current status of the GeoCoordinateWatcher.

Metodi

Dispose()

Rilascia tutte le risorse utilizzate dall'istanza corrente della classe GeoCoordinateWatcher.Releases all resources that are used by the current instance of the GeoCoordinateWatcher class.

Dispose(Boolean)

Rilascia tutte le risorse usate dall'istanza corrente della classe GeoCoordinateWatcher.Releases all resources used by the current instance of the GeoCoordinateWatcher class.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
Finalize()

Libera risorse ed esegue altre operazioni di pulizia prima che l'oggetto GeoCoordinateWatcher venga recuperato tramite Garbage Collection.Frees resources and performs other cleanup operations before the GeoCoordinateWatcher is reclaimed by garbage collection.

GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
OnPositionChanged(GeoPositionChangedEventArgs<GeoCoordinate>)

Chiamato quando si verifica un evento PositionChanged.Called when a PositionChanged event occurs.

OnPositionStatusChanged(GeoPositionStatusChangedEventArgs)

Chiamato quando si verifica un evento StatusChanged.Called when a StatusChanged event occurs.

OnPropertyChanged(String)

Viene chiamato quando si modifica una proprietà di GeoCoordinateWatcher.Called when a property of the GeoCoordinateWatcher changes.

Start()

Avvia l'acquisizione dei dati dal provider di posizione corrente.Initiate the acquisition of data from the current location provider. Questo metodo abilita eventi PositionChanged e consente l'accesso alla proprietà Position.This method enables PositionChanged events and allows access to the Position property.

Start(Boolean)

Avvia l'acquisizione dei dati dal provider di posizione corrente.Initiate the acquisition of data from the current location provider. Questo metodo abilita eventi PositionChanged e consente l'accesso alla proprietà Position.This method enables PositionChanged events and allows access to the Position property.

Stop()

Impedisce a GeoCoordinateWatcher di fornire eventi e dati sulla posizione.Stops the GeoCoordinateWatcher from providing location data and events.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)
TryStart(Boolean, TimeSpan)

Avvia l'acquisizione dei dati dal provider di posizione corrente.Initiates the acquisition of data from the current location provider. Questo metodo viene restituito in modo sincrono.This method returns synchronously.

Eventi

PositionChanged

Indica che è cambiata la latitudine o la longitudine dei dati del percorso.Indicates that the latitude or longitude of the location data has changed.

StatusChanged

Indica che lo stato dell'oggetto GeoCoordinateWatcher è cambiato.Indicates that the status of the GeoCoordinateWatcher object has changed.

Implementazioni dell'interfaccia esplicita

IGeoPositionWatcher<GeoCoordinate>.PositionChanged

Indica che i dati del percorso sono cambiati.Indicates that the location data has changed.

IGeoPositionWatcher<GeoCoordinate>.StatusChanged

Indica che lo stato del provider di posizione è cambiato.Indicates that the status of the location provider has changed.

INotifyPropertyChanged.PropertyChanged

Indica che la proprietà Status, Position o Permission è stata modificata.Indicates that the Status property, the Position property, or the Permission property has changed.

Si applica a