具有多个圆的近似多边形

Approximate polygon with multiple circles

背景:我需要制作 Google 以多边形区域为目标的广告活动。我收到了这个区域(这实际上是一个人们可以通过交通方式(例如:汽车)快速访问我们正在为其开展活动的设施的区域)。 Google 广告不再支持定位多边形区域,我们实际上只能定位一组圆圈。

所以我考虑用圆来近似多边形(根据我的理解 "incircle",或此多边形的 "inscribed" 个圆)。

一个快速但不完美的例子,一个算法将覆盖尽可能多的多边形(绿色区域),可能有一个参数来控制最大圆数

我只找到了关于用一个圆逼近一个非常接近圆的多边形的信息,我需要多个。

是否有任何理论上的 algorithm/any 实施,任何软件包,或者我是否错误地认为我必须解决关于 Google 广告地理定位的挑战?

我找到的唯一解决方案(我花了 2 天时间才完全实施)是使用 turfjs 在我的多边形周围创建一个边界框,然后创建一个正方形网格 (turf.squareGrid),然后将其转换为矩阵充满 0 或有关正方形的信息。然后递归函数找到这个矩阵中最大的方块,然后是下一个方块等等,直到所有方块都变成相等或更大的方块。然后我围绕这些更大的正方形做了圆圈(半径等于 sqrt(2) (~1.41) * (perimeterOfABigSquare / 2).