c# - Xamarin Forms Geolocator 持续更新位置

标签 c# android google-maps xamarin.forms geolocation

我希望不断更新设备在 Google map 上的当前位置。

由于各种原因,我必须实现自己的蓝点。我所做的是:

  • 我隐藏了 Google map 的默认我的位置标记(默认蓝点)。

  • 我画了自己的蓝点

  • 我创建了一个不断调用 Geolocator 以更新其当前位置的线程:await locator.GetPositionAsync(TimeSpan.FromSeconds(2), null, false);

    /li>

但是,位置更新需要很长的延迟。我希望以非常低的间隔(大约 50 毫秒)更新位置,这可能会在设备移动时提供与 Google map 的原始蓝点类似的结果。

我怎样才能做到这一点?

最佳答案

我发现 CrossGeolocator 有一个监听功能,如果有位置更新,它会提示。此函数不会持续调用当前位置,而是会持续监听任何位置变化。

if (CrossGeolocator.IsSupported &&
    CrossGeolocator.Current.IsGeolocationAvailable &&
    CrossGeolocator.Current.IsGeolocationEnabled)
{
    CrossGeolocator.Current.PositionChanged += HandlePositionChanged;
    await CrossGeolocator.Current.StartListeningAsync(TimeSpan.FromSeconds(1), 10);
}

关于c# - Xamarin Forms Geolocator 持续更新位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50099890/

相关文章:

android - 如何在flutter插件中使用本地aar?

android - 在android应用程序中单击后退按钮时如何避免startActivityForResult

javascript - 在 AngularJS 的谷歌地图中单击标记时如何关闭其他信息窗口

javascript - 什么是javascript mvc/oop结构中的原型(prototype)

c# - 如何使用 SslStream 和自签名证书实现 Https Web 服务器?

c# - Linq to Sql - 将 JOIN 结果填充到列表中

c# - 如何在 C# 中使用 XMLREADER 从 XML 字符串中读取特定元素

C# - 将字典键/值插入新元组

android - 在具有固定 Recycler 项目高度的 ScrollView 中使用 RecyclerView

php - 在 Google map 上打印大 map