将一条路线作为一组位置,我想知道用户何时使用地理围栏偏离路线。目前,我正在为路线上的每个位置创建一个地理围栏,但它并没有真正以合理的方式覆盖路线(如下例)。
目前,我只能想到每隔 X 米手动计算路线上的位置并添加更多地理围栏,但这似乎更像是创可贴,而不是一个好的解决方案。
有没有办法在没有很多小地理围栏的情况下实现类似于第二张照片的效果,或者这是唯一的方法吗?
谢谢。
最佳答案
我认为,如果您尝试使用普通地理围栏解决这个问题,您最终会发现很多地理围栏重叠以覆盖所有多边形。
如果我必须解决它,我可能会使用定义的多边形并检查用户是否在其中。
您可以检查以下库来轻松完成此操作。
https://github.com/sromku/polygon-contains-point
1) 设置坐标多边形
多边形 polygon = Polygon.Builder()
.addVertex(新点(1, 3))
.addVertex(新点(2, 8))
.addVertex(新点(5, 4))
.addVertex(新点(5, 9))
.addVertex(新点(7, 5))
.addVertex(新点(6, 1))
.addVertex(新点(3, 1))
。 build ();
2) 在每次位置变化时检查用户是否在其内部/外部
Point point = new Point(4.5f, 7);
bool 值包含=多边形。包含(点);
关于android - Android 中路线的地理围栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39514872/