Name

ST_LargestEmptyCircle — Calcule le plus grand cercle ne recouvrant pas une géométrie.

Synopsis

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

Description

Trouve le plus grand cercle qui ne chevauche pas un ensemble d'obstacles de points et de lignes. (Les géométries polygonales peuvent être incluses en tant qu'obstacles, mais seules leurs lignes de démarcation sont utilisées). Le centre du cercle est contraint de se situer à l'intérieur d'une limite polygonale, qui par défaut est l'enveloppe convexe de la géométrie d'entrée. Le centre du cercle est le point à l'intérieur de la frontière qui est le plus éloigné des obstacles. Le cercle lui-même est fourni par le point central et un point le plus proche situé sur un obstacle déterminant le rayon du cercle.

Le centre du cercle est déterminé avec une précision donnée, spécifiée par une tolérance de distance, à l'aide d'un algorithme itératif. Si la distance de précision n'est pas spécifiée, une valeur par défaut raisonnable est utilisée.

Renvoie un enregistrement avec des champs :

  • center - point central du cercle

  • nearest - un point de la géométrie le plus proche du centre

  • radius - rayon du cercle

Pour trouver le plus grand cercle vide à l'intérieur d'un polygone, voir ST_MaximumInscribedCircle.

Disponibilité : 3.4.0.

Nécessite GEOS >= 3.9.0.

Exemples

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

Le plus grand cercle vide à l'intérieur d'un ensemble de lignes.

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

Le plus grand cercle vide à l'intérieur d'un ensemble de points, contraint à se situer dans un polygone. La limite du polygone de contrainte doit être incluse en tant qu'obstacle et spécifiée en tant que contrainte pour le centre du cercle.