名称

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

概要

(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,
       ST_AsText(center) AS center,
       ST_AsText(nearest) AS 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,
       ST_AsText(center) AS center,
       ST_AsText(nearest) AS nearest
  FROM ST_LargestEmptyCircle(
         St_Collect(
           'MULTIPOINT ((70 50), (60 130), (130 150), (80 90))',
           'POLYGON ((90 190, 10 100, 60 10, 190 40, 120 100, 190 180, 90 190))'),
         'POLYGON ((90 190, 10 100, 60 10, 190 40, 120 100, 190 180, 90 190))'
       );

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

另请参见

ST_MinimumBoundingRadius