如何创建一个嵌入多边形以进行地理围栏的圆形地理围栏区域?

Posted

技术标签:

【中文标题】如何创建一个嵌入多边形以进行地理围栏的圆形地理围栏区域?【英文标题】:How to create a circular geofence area that embeds your polygon for geofencing? 【发布时间】:2017-10-16 09:43:44 【问题描述】:

我正在尝试为 ios 实施多边形地理围栏的最佳方式。我已经提到了这个question

我正在尝试第一种方法。我需要一些代码帮助来实现这种方法。

如何用多边形坐标创建圆形地理围栏区域? 有没有什么算法可以创建一个嵌入多边形坐标的圆形区域?

任何帮助将不胜感激。谢谢!

【问题讨论】:

在数学 StackExchange 网站上获得算法可能会更好:math.stackexchange.com 【参考方案1】:

您面临的问题称为The Smallest Circle 问题。

本质上,您正在寻找包含点列表的最小圆。

谷歌搜索了一下,发现可以在线性时间内完成。

算法是这样描述的......

算法以随机顺序处理 S 的点,保持处理点的集合 P 和包围 P 和 Q 的并集的最小圆。在每一步,它测试下一个点 r 是否被处理的属于这个圈子;如果不是,则算法用对集合 P 和 Q+r 的递归调用的结果替换封闭圆。无论圆是否被替换,r 都包含在集合 P 中。因此,处理每个点包括在恒定时间内测试该点是否属于单个圆,并可能执行对算法的递归调用。可以证明待处理的第i个点有概率 ○ ( 1 / 一世 ) 生成递归调用的时间为 O(1/i),因此总时间是线性的。

Here is the Wikipedia link about the problem.

您可能可以从这里找到更多关于此问题的资源。

希望对您有所帮助。

Here is another site that possibly provides a more complete solution

【讨论】:

以上是关于如何创建一个嵌入多边形以进行地理围栏的圆形地理围栏区域?的主要内容,如果未能解决你的问题,请参考以下文章

Android 地理围栏(多边形)

定义地理围栏并查看点是不是在其内部/外部的算法

地理围栏:如何识别对象(特征),使用 Oracle Spatial 重叠地理围栏边界?

地理围栏精度

应用程序在圆形区域应用地理围栏时崩溃

如何检查给定坐标是不是属于多边形? (离线地理围栏)