名称

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,
      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
       );

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