Condividi tramite


GeoCoordinateWatcher.Start Metodo

Definizione

Avvia l'acquisizione dei dati dal provider di posizione corrente. Questo metodo abilita eventi PositionChanged e consente l'accesso alla proprietà Position.

Overload

Start()

Avvia l'acquisizione dei dati dal provider di posizione corrente. Questo metodo abilita eventi PositionChanged e consente l'accesso alla proprietà Position.

Start(Boolean)

Avvia l'acquisizione dei dati dal provider di posizione corrente. Questo metodo abilita eventi PositionChanged e consente l'accesso alla proprietà Position.

Start()

Avvia l'acquisizione dei dati dal provider di posizione corrente. Questo metodo abilita eventi PositionChanged e consente l'accesso alla proprietà Position.

public:
 virtual void Start();
public void Start ();
abstract member Start : unit -> unit
override this.Start : unit -> unit
Public Sub Start ()

Implementazioni

Esempio

Il programma seguente gestisce il primo aggiornamento del percorso che si verifica dopo Start la chiamata.

using System;
using System.Device.Location;

namespace GetLocationDataUpdateOnce
{
    class Program
    {
        static void Main(string[] args)
        {
            CLocation myLocation = new CLocation();
            myLocation.GetLocationDataEvent();
            Console.WriteLine("Enter any key to quit.");
            Console.ReadLine();
        }
        class CLocation
        {
            GeoCoordinateWatcher watcher;

            public void GetLocationDataEvent()
            {
                this.watcher = new GeoCoordinateWatcher();
                this.watcher.PositionChanged += new EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>>(watcher_PositionChanged);
                this.watcher.Start();
            }

            void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
            {
                PrintPosition(e.Position.Location.Latitude, e.Position.Location.Longitude);
                // Stop receiving updates after the first one.
                this.watcher.Stop();
            }

            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 GetLocationDataEvent()
            watcher = New System.Device.Location.GeoCoordinateWatcher()
            AddHandler watcher.PositionChanged, AddressOf watcher_PositionChanged
            watcher.Start()

        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)
            ' Stop receiving updates after the first one.
            watcher.Stop()
        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.GetLocationDataEvent()
        Console.WriteLine("Enter any key to quit.")
        Console.ReadLine()
    End Sub

End Module

Commenti

La chiamata a questo metodo avvierà l'acquisizione dei dati dal provider di percorsi corrente. Il provider di posizioni corrente viene selezionato in base a fattori quali l'età e l'accuratezza dei dati di tutti i provider, l'accuratezza richiesta dall'applicazione o dalle applicazioni e l'impatto sul consumo energetico e sulle prestazioni associati al provider di posizione. Il provider di posizione corrente potrebbe cambiare nel tempo, ad esempio, quando un dispositivo GPS perde il suo segnale satellitare al chiuso e un provider di triangoli Wi-Fi diventa il provider più accurato sul computer.

Se il provider di percorsi con priorità corrente non dispone di dati quando viene chiamato il Start metodo, inizierà ad acquisire i dati. Se le autorizzazioni sono state concesse al client quando i dati diventano disponibili, è possibile accedere ai dati in modo sincrono e verranno recapitati in modo asincrono se gli eventi vengono gestiti.

Se la piattaforma Sensore e posizione di Windows 7 è disabilitata quando Start viene chiamata, Start restituirà immediatamente, PositionChanged gli eventi non verranno generati e la posizione restituita dalla Location proprietà di Position conterrà Unknown.

Se il provider di percorsi con priorità corrente dispone di dati, sarà disponibile immediatamente e verrà recapitato in modo asincrono se gli eventi vengono gestiti.

Se l'applicazione chiamante non dispone delle autorizzazioni per accedere ai dati da un provider di percorsi, all'utente verrà chiesto di concedere o negare l'autorizzazione. La finestra di dialogo sarà senza modalità.

Si applica a

Start(Boolean)

Avvia l'acquisizione dei dati dal provider di posizione corrente. Questo metodo abilita eventi PositionChanged e consente l'accesso alla proprietà Position.

public:
 virtual void Start(bool suppressPermissionPrompt);
public void Start (bool suppressPermissionPrompt);
abstract member Start : bool -> unit
override this.Start : bool -> unit
Public Sub Start (suppressPermissionPrompt As Boolean)

Parametri

suppressPermissionPrompt
Boolean

true per eliminare la finestra di dialogo dell'autorizzazione; false per mostrare facoltativamente la finestra di dialogo dell'autorizzazione se le autorizzazioni non sono già state concesse.

Implementazioni

Si applica a