GISarabia.org
PostGIS › الدليل الرسمي › 7. مرجع PostGIS › 7.6. التحقق من صلاحية الأشكال الهندسية
PostGIS 3.6 · Official Manual · ترجمة عربية

ST_IsValid

الصفحة الأصلية بالإنجليزية postgis.net ↗

الاسم

ST_IsValid — تختبر ما إذا كان الشكل الهندسي سليم البنية في البعدين.

المختصر

boolean ST_IsValid(geometry g);

boolean ST_IsValid(geometry g, integer flags);

الوصف

تختبر ما إذا كانت قيمة ST_Geometry سليمة البنية وصالحة في البعدين وفق قواعد OGC. بالنسبة إلى الأشكال الهندسية ذات 3 و4 أبعاد، تُختبر الصلاحية في بعدين فقط. وللأشكال الهندسية غير الصالحة، يصدر إشعار NOTICE من PostgreSQL يقدّم تفاصيل سبب عدم صلاحيتها.

بالنسبة إلى النسخة ذات المعامل flags، القيم المدعومة موثّقة في ST_IsValidDetail. هذه النسخة لا تطبع إشعار NOTICE يشرح عدم الصلاحية.

لمزيد من المعلومات عن تعريف صلاحية الأشكال الهندسية، راجع قسم 4.4, “التحقق من صلاحية الأشكال الهندسية”

[ملاحظة]

تعرّف SQL-MM نتيجة ST_IsValid(NULL) بأنها 0، بينما تُعيد PostGIS القيمة NULL.

تُنفَّذ بواسطة وحدة GEOS.

النسخة التي تقبل flags متاحة بدءًا من 2.0.0.

تطبّق هذه الدالة مواصفة OGC Simple Features Implementation Specification for SQL 1.1.

تطبّق هذه الدالة مواصفة SQL/MM. SQL-MM 3: 5.1.9

[ملاحظة]

لا تتضمن مواصفة OGC-SFS ولا مواصفة SQL-MM وسيط flag للدالة ST_IsValid. فهذا الوسيط امتداد خاص بـ PostGIS.

أمثلة

SELECT ST_IsValid(ST_GeomFromText('LINESTRING(0 0, 1 1)')) As good_line,
        ST_IsValid(ST_GeomFromText('POLYGON((0 0, 1 1, 1 2, 1 1, 0 0))')) As bad_poly
--results
NOTICE:  Self-intersection at or near point 0 0
 good_line | bad_poly
-----------+----------
 t         | f