将路线作为一组位置,我想知道用户何时使用地理围栏偏离它。目前我正在为路线上的每个位置创建一个地理围栏,但它并没有以合理的方式覆盖路线(例如下面的例子)。
目前,我只能考虑每隔X米手动计算路线上的位置并添加更多地理围栏,但它看起来更像是乐队援助,而不是一个好的解决方案。
有没有办法在没有很多小地理围栏的情况下实现类似于第二张照片的东西,或者这是唯一的方式?
感谢。
答案 0 :(得分:2)
我认为,如果你尝试用普通的地理围栏来解决这个问题,那么最终会有很多地理位置重叠以覆盖所有的多边形。
如果我必须解决它,我可能会使用已定义的多边形并检查用户是否进出它。
您可以检查以下库,以便轻松完成此任务。
https://github.com/sromku/polygon-contains-point
1)设置坐标多边形
Polygon polygon = Polygon.Builder()
.addVertex(new Point(1, 3))
.addVertex(new Point(2, 8))
.addVertex(new Point(5, 4))
.addVertex(new Point(5, 9))
.addVertex(new Point(7, 5))
.addVertex(new Point(6, 1))
.addVertex(new Point(3, 1))
.build();
2)在每次更改位置时检查用户是否在其内部/外部
Point point = new Point(4.5f, 7);
boolean contains = polygon.contains(point);
答案 1 :(得分:1)
根据罗伯特的回答,我最终在名为CMDPusher[28340:7617667] [] nw_coretls_read_one_record tls_handshake_process: [-9802]
CMDPusher[28340:7616111] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802)
的{{3}}中使用了类似的方法。