当用户的当前位置发生变化时,订阅xamarin map / Geolocator事件

时间:2018-03-29 19:08:12

标签: c# xamarin xamarin.forms maps

我正在使用xamarin.forms.maps创建一个xamarin应用程序,并想知道是否有一种方法可以订阅一个事件,告诉我用户当前位置何时发生变化。我可以通过geolocator插件获取用户的当前位置,但我想要一个事件驱动的方式来更新用户移动时的当前位置,因为我想在移动x米时将用户的当前位置保存到数据库。我搜索过高低,无法找到我真正想要的东西。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

官方文档中提供了大量示例。

例如,您可以订阅Xamarin.Android作为已读here,在FusedLocationProviderClient.RequestLocationUpdatesAsync订阅位置更新。您也可以使用LocationService,但正如documentation中所述,此服务是较旧的API,最适用于未安装Google Play服务的设备。

您可以使用FusedLocationProviderClient here找到使用LocationService here和另一个示例的示例。

对于iOS,您可以按照here所述订阅CLLocationManager.LocationsUpdated事件。您可以找到此here的示例。

然后,您可以创建自己的ILocationManager,这是专门用于监听PCL项目中位置更新的实施平台。

答案 1 :(得分:0)

对于任何可能遇到此问题的人,

Geolocator有一个名为PositionChanged的事件,可以在PCL中订阅。可悲的是,当我查看代码时很容易找到。