【问题标题】:Xamarin Forms - Geofencing libraryXamarin Forms - 地理围栏库
【发布时间】:2020-03-12 13:24:47
【问题描述】:

我创建了一个 xamarin 移动应用程序并希望创建以下功能:创建一个或多个地理围栏。当使用手机的用户在该位置时,我想触发一些代码。是否有任何库可用于使用 xamarin 表单实现此跨平台?

【问题讨论】:

    标签: xamarin xamarin.forms geolocation geofencing


    【解决方案1】:

    如果您的地理围栏是圆形,您可以使用Xamarin.Essentials 获取distance between 2 points,如果距离小于地理围栏距离,则它在地理围栏内。

    long geofenceDistance = 2;
    Location geofenceCentercordinate = new Location(centrerCoordinate.Latitude, centrerCoordinate.Longitude);
    Location userLocation = new Location(position.Latitude, position.Longitude);
    var distance = (long)Location.CalculateDistance(userLocation ,geofenceCentercordinate, DistanceUnits.Kilometers);
    if(distance < geofenceDistance){
        //it's inside the Geofence
    }
    

    另外,如果你想经常听到你的位置,你可以查看我的另一个anwser Here

    【讨论】:

    • 感谢您的帮助。你知道我需要哪些 xamarin.essentials 吗?
    • @MYil 如果您使用最新版本,您肯定会拥有这个,很高兴我能提供帮助,如果这解决了您的问题,请不要忘记将其标记为正确的答案
    • @MYil 也不要忘记您可以将 DistanceUnits.Kilometers 更改为适合您目的的单位,我还添加了指向其他问题的链接,在该链接中我回答了如何收听位置变化,但我猜您不需要每次都更改位置
    • 感谢您的回复。您的解决方案是获取两点之间的距离,但我真的需要知道如何创建地理围栏,而我在您的反应中找不到。希望你能帮我解决这个问题。
    • 好的,您能否更具体地说明您正在寻找的地理围栏类型?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-07
    • 2015-02-26
    • 2015-11-07
    相关资源
    最近更新 更多