سؤال

هل هناك طريقة لإزالة الإقرارات الذاتية من مضلع باستخدام GEOS؟

هل كانت مفيدة؟

المحلول

لذلك ، لا بد لي من الإجابة على السؤال بنفسي. ربما سيساعد شخص ما.

يمكنك إصلاح مضلع باستخدام GEOS :: Operation :: Buffer :: Bufferop Class. على سبيل المثال

geos::geom::Geometry * result = 
                       geos::operation::buffer::BufferOp::bufferOp(polygon, 1.0);

يمكنك العثور على المزيد من الوصفات الجيدة في أسرار جناح طوبولوجيا JTS.

نصائح أخرى

غالبًا ما يُسمح بتقاطعات النقطة ، حتى تتمكن من التغيير

1  2   4
*--*   *       
|   \ /|
|    X |
|   / \|
*--*   *
6  5   3

إلى

1  2   4
*--*   *       
|   \ /|
|   3*6|
|   / \|
*--*   *
8  7   5

حيث النقطتين 3 و 6 هي نفسها. إذا لم يتم السماح تقاطعات النقطة ، فانتقل أحدها كمية صغيرة.

في تجربتي ، فإن معظم هذه التقاطعات من خلال تبسيط المضلع الخاطئ ، لذلك سيكون من الأفضل العودة إلى المصدر إن أمكن.

المضلع الذي تم اختتامه ذاتيا غير صالح. وبالتالي قد يعطي المخزن المؤقت نتيجة غير صالحة. لم أجد أي طريقة لإصلاح المضلع الذي تم اختلافه ذاتيا في GEOS. وظيفة ST_MAKEVALID في postgis تستخدم GEOS. لذلك من الممكن التحقيق في رمز المصدر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top