React native React Native-是否有可靠的地理围栏包可用?

React native React Native-是否有可靠的地理围栏包可用?,react-native,geofencing,React Native,Geofencing,我已经搜索了一段时间,还没有找到一个可靠的react native地理围栏包。我发现了以下几种:react-native-boundary、react-native-simple-native-geofraining(未完全测试)。这些都不是很可靠,也没有很好的支持。此外,这些包确实有bug。请告知是否有可用的软件包。您可以使用NPMJ上提供的react本地地理定位服务。 有了它,您可以使用诸如连续监视位置或获取当前用户位置之类的功能 对于制作地理围栏,通过传递用户的LatLong和地理围栏区

我已经搜索了一段时间,还没有找到一个可靠的
react native
地理围栏包。我发现了以下几种:react-native-boundary、react-native-simple-native-geofraining(未完全测试)。这些都不是很可靠,也没有很好的支持。此外,这些包确实有bug。请告知是否有可用的软件包。

您可以使用NPMJ上提供的react本地地理定位服务。 有了它,您可以使用诸如连续监视位置或获取当前用户位置之类的功能

对于制作地理围栏,通过传递用户的LatLong和地理围栏区域的LatLong,使用下面的函数计算距离。它返回半径


地理围栏并非微不足道,可能会出现许多陷阱,例如如何管理手机供应商之间的差异,以及如何实现良好的精度。对于不同的设备和操作系统版本,要有一致的行为是相当困难的。因此,你应该寻找专门的产品,如Herow或Radar。他们都有React本机插件,并且都有免费试用。

你试过这个吗?你有解决这个问题的有效方法吗?我试过第二个链接上的方法,效果很好。这不是最好的方法,由于GeoFerning不仅仅是每秒检查一次你的位置,并与一些预定义的半径进行比较——有很多奇特的算法,比如在你离开GeoFerning时减少检查频率以节省电池——在Apple/Google GeoFerning SDK周围使用一些包装器是一条路要走。听到这些很难过,即使是免费的解决方案也不再受支持,另一个好的解决方案(付费)是晶体管软
function distance(lat1, lon1, lat2, lon2, unit) {
if ((lat1 == lat2) && (lon1 == lon2)) {
    return 0;
}
else {
    var radlat1 = Math.PI * lat1/180;
    var radlat2 = Math.PI * lat2/180;
    var theta = lon1-lon2;
    var radtheta = Math.PI * theta/180;
    var dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);
    if (dist > 1) {
        dist = 1;
    }
    dist = Math.acos(dist);
    dist = dist * 180/Math.PI;
    dist = dist * 60 * 1.1515;
    if (unit=="K") { dist = dist * 1.609344 }
    if (unit=="N") { dist = dist * 0.8684 }
    return dist;
    }
}