الاسم
ST_LargestEmptyCircle — تحسب أكبر دائرة لا تتداخل مع شكل هندسي.
المختصر
(geometry, geometry, double precision) ST_LargestEmptyCircle(geometry geom, double precision tolerance=0.0, geometry boundary=POINT EMPTY);
الوصف
تجد أكبر دائرة لا تتداخل مع مجموعة من العوائق النقطية والخطية. (يمكن تضمين الأشكال المضلّعية عوائقَ، لكن لا تُستخدم إلا خطوط حدودها.) ويُقيَّد مركز الدائرة بأن يقع داخل حد مضلّعي، وهو افتراضياً الغلاف المحدب للشكل المُدخل. ومركز الدائرة هو النقطة الواقعة داخل الحد والأبعد مسافةً عن العوائق. وتُمثَّل الدائرة نفسها بالنقطة المركزية وبأقرب نقطة واقعة على عائق، وهي التي تحدد نصف قطر الدائرة.
If a boundary is supplied it must be a valid polygonal geometry with positive area.
يُحدَّد مركز الدائرة بدقة معيّنة يحددها تسامح مسافي، باستخدام خوارزمية تكرارية. وإذا لم تُحدَّد مسافة الدقة فتُستخدم قيمة افتراضية معقولة.
تُعيد سجلاً بالحقول:
-
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
);
أكبر دائرة فارغة ضمن مجموعة من النقاط، مقيّدة بأن تقع داخل مضلع. يجب تضمين حدود المضلع المقيِّد عائقاً، وكذلك تحديده قيداً لمركز الدائرة.