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 ,目前的優先順序位置提供者沒有數據,則會開始取得數據。 如果數據變成可用時已授與客戶端許可權,則可以同步存取數據,並在正在處理事件時以異步方式傳遞。

如果呼叫 時Start停用 Windows 7 感測器和位置平臺,Start將會立即傳回、PositionChanged不會引發事件,且 的屬性PositionLocation傳回的位置將包含 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 表示如果尚未授與使用權限,則選擇性顯示使用權限對話方塊。

實作

適用於