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 内的多边形中。
换句话说,检查你是否在白色区域而不是灰色区域:
根据 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 内的多边形中。
换句话说,检查你是否在白色区域而不是灰色区域: