Поделиться через


GeoCoordinateWatcher.Start Метод

Определение

Инициирует получение данных от текущего поставщика расположения. Этот метод делает возможными события PositionChanged и разрешает доступ к свойству Position.

Перегрузки

Start()

Инициирует получение данных от текущего поставщика расположения. Этот метод делает возможными события PositionChanged и разрешает доступ к свойству Position.

Start(Boolean)

Инициирует получение данных от текущего поставщика расположения. Этот метод делает возможными события PositionChanged и разрешает доступ к свойству Position.

Start()

Инициирует получение данных от текущего поставщика расположения. Этот метод делает возможными события PositionChanged и разрешает доступ к свойству Position.

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

Реализации

Примеры

Следующая программа обрабатывает первое обновление расположения, которое происходит после Start вызова метода .

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

Комментарии

Вызов этого метода инициирует получение данных у текущего поставщика расположения. Текущий поставщик расположения выбирается на основе таких факторов, как возраст и точность данных от всех поставщиков, точность, запрашиваемая приложением или приложениями, а также влияние на энергопотребление и производительность, связанные с поставщиком расположения. Текущий поставщик местоположения может меняться со временем, например, когда устройство GPS теряет свой спутниковый сигнал в помещении, а поставщик триангуляции Wi-Fi становится наиболее точным поставщиком на компьютере.

Если текущий поставщик приоритетных расположений не имеет данных при вызове Start метода, он начнет получать данные. Если разрешения были предоставлены клиенту, когда данные становятся доступными, доступ к данным можно получить синхронно, и они будут доставлены асинхронно, если события обрабатываются.

Если платформа датчика и расположения Windows 7 отключена при Start вызове метода , Start немедленно возвращает , PositionChanged события не будут вызваны, а расположение, возвращаемое свойством Location , Position будет содержать Unknown.

Если у текущего поставщика приоритетных расположений есть данные, они будут доступны синхронно немедленно и будут доставлены асинхронно при обработке событий.

Если у вызывающего приложения нет разрешений на доступ к данным от поставщика расположения, пользователю будет предложено предоставить или отклонить разрешение. Диалоговое окно будет немодерным.

Применяется к

Start(Boolean)

Инициирует получение данных от текущего поставщика расположения. Этот метод делает возможными события PositionChanged и разрешает доступ к свойству 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)

Параметры

suppressPermissionPrompt
Boolean

Значение true для подавления диалогового окна запроса разрешений; значение false для отображения диалогового окна, если разрешения еще не были предоставлены.

Реализации

Применяется к