【问题标题】:Xamarin forms get current location take more timeXamarin 表单获取当前位置需要更多时间
【发布时间】:2021-03-31 07:01:18
【问题描述】:

我有 xamarin 表单应用程序并具有捕获当前用户位置的功能,并且我使用 CrossGeolocator PLugin
以及获取位置的这部分代码:

   locator = CrossGeolocator.Current;
   var position = await locator.GetPositionAsync();
   order.@long = position.Longitude;
   order.lat = position.Latitude;

它的返回位置,但有时需要更多时间才能返回当前位置是否有任何解决方案来减少位置捕获时间。 谢谢

【问题讨论】:

    标签: android xamarin.forms xamarin.android geolocation android-gps


    【解决方案1】:

    如果您想加快处理速度,请使用Xamarin.Essentials。 Xamarin.Essentials 提供了一种获取用户位置的绝佳方式,这是比使用 Geolocator 插件更快的替代方法。不仅如此 - Xamarin.Essentials 已经过良好测试,并得到 Microsoft 自身的支持。

    首先将以下代码粘贴到您的AndroidManifest.xml 文件中:

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-feature android:name="android.hardware.location" android:required="false" />
    <uses-feature android:name="android.hardware.location.gps" android:required="false" />
    <uses-feature android:name="android.hardware.location.network" android:required="false" />
    

    这是获取用户纬度和经度的示例 - 您可以将以下代码调整到您的项目:

    var position = await Xamarin.Essentials.Geolocation.GetLocationAsync();
    
                double latitude = position.Latitude;
    
                double longitude = position.Longitude;
    

    有关地理位置的更多信息,请访问https://docs.microsoft.com/en-us/xamarin/essentials/geolocation?tabs=android

    当您使用Xamarin.Essentials 时,您应该会注意到速度的显着差异。

    【讨论】:

    • 确实如此。使用 Geolocator,您会牺牲速度,但根据 James,您会获得精确度。
    猜你喜欢
    • 2016-01-26
    • 2019-12-15
    • 1970-01-01
    • 2012-01-10
    • 2017-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-16
    相关资源
    最近更新 更多