Windows Phone擷取經緯度資訊

來源:互聯網
上載者:User

PS : 因為需要冷啟動至少也需要一分鐘以上,所以最好在公用類初始化,在需要調用的時候直接使用。

GeoCoordinateWatcher 類提供基於座標的位置資料,其來自當前的位置提供者。 來自當前位置提供者的基於座標的位置資料,該提供者是電腦上優先順序別最高的位置提供者,其優先順序別取決於一系列因素,如:來自所有提供者的資料的存在時間和準確性、位置應用程式請求的準確性、與位置提供者關聯的電量消耗和效能影響。 當前位置提供者可能會隨時間改變,例如,當 GPS 裝置失去內部附屬訊號功能並且 Wi-Fi 三邊轉換法提供者成為電腦上最準確的提供者時。

若要開始訪問位置資料,請建立 GeoCoordinateWatcher,然後調用 Start 或 TryStart,開始從當前的位置提供者擷取資料。

可檢查 Status 屬性來確定資料是否可用。 如果資料可用,您可以從 Position 屬性一次擷取位置,或通過處理 PositionChanged 事件接收連續的位置更新。

Permission、Status 以及 Position 屬性支援 INotifyPropertyChanged,因此應用程式可以資料繫結到這些屬性。

在 Windows 7 中,如果位置提供者已經安裝並能夠解析電腦的位置,則所有 System.Device.Location 類都完全正常。

注意

在 Windows 7 Starter 版上,唯一受支援的位置供應商是控制台中的預設位置提供者,且必須安裝增益集以指定緯度和經度。

注意:在 Windows 7 之前的 Windows 版本中,以下條件適用:

  • 可建立具有建構函式的所有 System.Device.Location 對象,但 Status 屬性將始終具有值 Disabled。

  • Position 的 Location 屬性所指示的位置將始終為 Unknown。

  • 不會引發位置事件。

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);            }        }    }}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.