检查用户是否处于特定半径(Flutter)



我想检查用户是否在他/她的房子里使用他们的地理位置。该应用程序将在前台运行,并且不会显示任何地图。用户的房屋将长期存放在Firestore中。

当用户打开应用程序时,我想检查他/她是否在家里。由于房子的大小可能会有所不同,我会考虑半径几米的房子。

任何帮助都将不胜感激。

这被称为地理围栏。在这种情况下,房子周围几米的半径就是地理围栏。

使用这个flutter软件包,您将能够轻松地做到这一点。还有许多其他地理围栏包。查看pub.dev

您可以这样做:

double getDistanceBetweenPositions({
required double homeLat,
required double homeLong,
required double userLat,
required double useLong,
}) {
final latDif = radians(homeLat - userLat);
final longDif = radians(homeLong - useLong);
final a = sin(latDif / 2) * sin(latDif / 2) +
cos(radians(userLat)) *
cos(radians(homeLat)) *
sin(longDif / 2) *
sin(longDif / 2);
final b = 2 * atan2(sqrt(a), sqrt(1 - a));
final result = earthRadius * b;
return result;
}

如果距离是<=房子的大小(你的半径(,这意味着用户在房子里。

相关内容

  • 没有找到相关文章

最新更新