共用方式為


GeoCoordinateWatcher.Start 方法

定義

開始從目前位置提供者取得資料。 此方法能啟動 PositionChanged 事件並允許存取 Position 該物業。

多載

名稱 Description
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事件不會被觸發,且由屬性Position回傳Location的位置將包含 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 如果尚未授予權限,則可選擇顯示權限對話框。

實作

適用於