UWP Windows10開發獲取設備位置(經緯度)

1.首先要在UWP項目的Package.appxmanifest文件中配置位置權限,以下圖所示:git

2.Package.appxmanifest後選擇第三個選項卡,勾選位置權限(Location)app

打開異步

3.而後建立一個LocationManage類,包括如下代碼:async

public async static Task<Geoposition> GetPosition()
        {
            //請求對位置的訪問權
            var accessStatus = await Geolocator.RequestAccessAsync();
            //此時,窗口會彈出提示是否容許應用訪問位置,若是用戶不容許則拋出異常
            if (accessStatus != GeolocationAccessStatus.Allowed) throw new Exception();
            //實例化定位類,並設置經緯度精確度(單位:米),通常爲零,爲保護用戶隱私,建議減小精確度
            var geolocator = new Geolocator { DesiredAccuracyInMeters = 0 };
            //異步獲取設備位置,並將位置保存到變量中(Geoposition類型)
            var position = await geolocator.GetGeopositionAsync();
            //返回位置
            return position;
        }

4.此時,這個返回的是Geoposition類型spa

 如今獲取輸出位置信息:code

給Page建立一個Loaded事件,以在應用加載的時候獲取設備當前位置blog

private async void Page_Loaded(object sender, RoutedEventArgs e)
        {
               //異步獲取位置,保存到變量中
                var position = await GetLocation.GetPosition();
               //維度
                double lat = position.Coordinate.Point.Position.Latitude;
               //經度
                double lon = position.Coordinate.Point.Position.Longitude;
        }    

5.這樣就在應用加載完成後獲取用戶設備位置座標事件

6.初次以外Geoposition還包含如下經常使用屬性,也是很經常使用的:it

  • Coordinate.PositionSource             獲取是那個源定位的位置,好比WIFI,GPSio

  • Coordinate.SatelliteData                獲取衛星相關信息,若是是非GPS獲取的位置,則爲NaN
  • Coordinate.Speed                         獲取以米/秒爲單位的速度,返回類型:double
  • Coordinate.Timestamp                  經過位置肯定的時間,返回類型:DateTimeOffset?
  • Coordinate.Point.Position.Altitude   獲取當前位置海拔
  • 。。。。
相關文章
相關標籤/搜索