Name

ST_LargestEmptyCircle — 计算不与几何图形重叠的最大圆。

Synopsis

(geometry, geometry, double precision) ST_LargestEmptyCircle(geometry geom, double precision tolerance=0.0, geometry boundary=POINT EMPTY);

描述

找到不与一组点和线障碍物重叠的最大圆。 (多边形几何图形可以作为障碍物包含在内,但仅使用它们的边界线。)圆的中心被限制位于多边形边界内,默认情况下,多边形边界是输入几何图形的凸包。 圆心是边界内部距离障碍物最远的点。 圆本身由中心点和位于确定圆半径的障碍物上的最近点提供。

使用迭代算法将圆心确定为由距离容差指定的给定精度。 如果未指定精度距离,则使用合理的默认值。

返回包含字段的记录:

  • center-圆的中心点

  • nearest-几何上最接近中心的点

  • radius-圆的半径

要查找多边形内部最大的空圆,请参见ST_MaximumInscribedCircle

可用性:3.4.0。

需要GEOS >= 3.9.0。

示例

SELECT radius,
      center,
      nearest
  FROM ST_LargestEmptyCircle(
        'MULTILINESTRING (
          (10 100, 60 180, 130 150, 190 160),
          (20 50, 70 70, 90 20, 110 40),
          (160 30, 100 100, 180 100))');

一组线内最大的空圆。

SELECT radius,
       center,
       nearest
  FROM ST_LargestEmptyCircle(
         ST_Collect(
           'MULTIPOINT ((70 50), (60 130), (130 150), (80 90))'::geometry,
           'POLYGON ((90 190, 10 100, 60 10, 190 40, 120 100, 190 180, 90 190))'::geometry),
           0,
         'POLYGON ((90 190, 10 100, 60 10, 190 40, 120 100, 190 180, 90 190))'::geometry
       );

一组点内最大的空圆,约束位于多边形内。 约束多边形边界必须作为障碍物包含在内,并指定为圆心的约束。