پایگاه داده مکانی اَبری
زیرساخت مکانی پروژه‌های شما، بدون دردسر راه‌اندازی سرور

هندسه نامعتبر (invalid geometry) چیست و چطور اصلاحش کنم؟

راهنمای گام‌به‌گام آخرین بازبینی: ۱۴۰۵/۰۷/۲۹

پاسخ کوتاه

هندسه نامعتبر مثلاً چندضلعی خودتقاطع است و باعث خطا در عملیات مکانی می‌شود. در «سلامت داده» گزینه اصلاح هندسه را بزنید یا با SQL و ST_MakeValid اصلاح کنید.

تشخیص

SELECT gid, ST_IsValidReason(geom)
FROM parcels
WHERE NOT ST_IsValid(geom)
LIMIT 20;

اصلاح

از سلامت داده گزینه اصلاح هندسه، یا:

UPDATE parcels SET geom = ST_MakeValid(geom) WHERE NOT ST_IsValid(geom);

Warning

ST_MakeValid ممکن است نوع هندسه را عوض کند (مثلاً چندضلعی به مجموعه‌ای از چندضلعی و خط). بعد از اصلاح نوع‌ها را بررسی کنید. قبل از اصلاح گسترده بکاپ بگیرید.

پیشگیری

قبل از ورود، در QGIS ابزار Check Validity را اجرا کنید. خطای معروف TopologyException در عملیات مکانی معمولاً از هندسه نامعتبر است (مثال).

هنگام ویرایش در مرورگر

اگر موقع ویرایش شکل روی نقشه هندسه‌ی نامعتبر بکشید (مثلاً چندضلعی پاپیونی)، پنجره‌ی «بازبینی» قبل از ذخیره آن را با علت نشان می‌دهد. می‌توانید شکل را دوباره بکشید یا «ترمیم خودکار» را بزنید؛ اگر ترمیم شکل را به چند تکه تقسیم کند ولی ستون فقط یک تکه بپذیرد، رد می‌شود تا بخشی بی‌صدا حذف نشود.

آیا این مقاله به شما کمک کرد؟

چه چیزی کم بود؟ (اختیاری)

هنوز جواب نگرفتید؟ به پشتیبانی بگویید.