Android:构建多边形地理围栏

Android: Build Polygonal Shape Geofence

根据 API 文档,只允许圆形地理围栏:

https://developers.google.com/android/reference/com/google/android/gms/location/Geofence.Builder

例如:https://developer.android.com/training/location/geofencing.html

但是我有 4 个位置,代表矩形的 4 个角,我希望我的地理围栏就是那个矩形。

我想避免构建我的自定义位置监控服务来扩展监控地理围栏的功能,因为我认为这种服务 CPU 并且很耗电...

谢谢,

Android地理围栏API仅支持圆形地理围栏。如果你想监控多边形地理围栏,那么你必须自己实现它。

一个解决方案是这样的:

使用位置API获取当前位置更新。

现在你有了多边形地理围栏。您可以使用光线投射算法来检查一个点是否在封闭多边形内?

你必须自己做(但我认为这很无意义 - geofences/location 服务不够准确,甚至无法提醒圈子,甚至不考虑其他具体形状) .

创建包含您的多边形的最小圆形地理围栏,如果触发,只需检查您是否在 Google Maps Android API utility library 内的多边形中。

换句话说,检查你是否在白色区域而不是灰色区域: