android - Android 中路线的地理围栏

标签 android geolocation android-geofence

将一条路线作为一组位置,我想知道用户何时使用地理围栏偏离路线。目前,我正在为路线上的每个位置创建一个地理围栏,但它并没有真正以合理的方式覆盖路线(如下例)。

我想替换这个: Wrong geofencing

像这样的东西: Right geofencing

目前,我只能想到每隔 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/

相关文章:

javascript - jQuery 地理定位 : Cannot read property 'coords' of undefined

android - Android 的地理围栏限制

android - 地理围栏转换服务和唤醒锁

android - 如何使用 Android 地理围栏 API?

android - 将图片保存到本地并在 webview 中显示

android - 为什么在使用 Firebase Recycler View Adapter 时出现调用目标异常?

android - 我可以从设置中授予危险权限吗?

android - 如何在 Android 应用程序中验证用于注册的电子邮件地址

javascript - 检测用户是否在域上启用了位置服务

android - 通过使用传感器检测用户移动,通过定位服务节省电量