检查用户位置是不是在颤动的2个地理点的区域内

Posted

技术标签:

【中文标题】检查用户位置是不是在颤动的2个地理点的区域内【英文标题】:Check if user position is withing the area of 2 geopoints in flutter检查用户位置是否在颤动的2个地理点的区域内 【发布时间】:2020-05-25 21:39:28 【问题描述】:

如何检查用户地理位置是否位于由定义正方形对角线的 2 个地理点定义的正方形区域内? 就像在下一张照片中一样。

如果用户地理位置在这 2 个点定义的白色方块中,我如何创建一个返回 true 的函数?

【问题讨论】:

【参考方案1】:

你可以使用bool overlaps(Rect other)方法..

    从用户位置创建一个半径为 1 的 Rect

    Rect userRect = Rect.fromCircle(center:Offset(UserPositionDx,UserPositionDy),radius:1);

    从 PointA 和 PointB 创建一个 Rect(如果不转换为 Offset,请检查这些点是否定义为 Offset(double dx,double dy))

    Rect areaSquare = Rect.fromPoints(PointA,PointB);

    创建一个布尔变量并设置它 一开始是假的 bool isUserInArea=false;

    检查用户位置(作为半径为 1 的矩形)是否被区域重叠

    isUserInArea=areaSquare.overlaps(userRect);

【讨论】:

以上是关于检查用户位置是不是在颤动的2个地理点的区域内的主要内容,如果未能解决你的问题,请参考以下文章

检查用户是不是在定义的区域

如何检查地理位置是不是在半径范围内?

地理围栏和 iOS:检查我们是不是在一个区域内

检查2个地址是不是在同一位置/区域[关闭]

地理位置 - 检查一个位置是不是属于一个区域

检查给定区域/坐标内的点的算法