名稱

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

在一組點內的最大空圓形,限制在多邊形內。約束多邊形邊界必須作為障礙物包含,並指定為圓心的約束。