الاسم
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