سؤال

كنت أواجه مشاكل أثناء تقاطع اثنين من الأشكال الهندسية ، وربما الحصول على طوبولوجيا على الأرجح بسبب خطأ تقريب أثناء العملية ، ثم قرأت هذا الإصلاح وحاولت buffer(0) على كل من هندسة الإدخال ، ولكن لا يزال بدون نجاح. ثم حاولت geo.buffer(1).buffer(-1) وعملت.

هل ستكون هذه الأشكال الهندسية مكافئة للأصلية؟

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

المحلول

لا أعرف أي شيء عن JTS ، لكن لا يمكن أن يكون صحيحًا بشكل عام.

افترض أن لديك شكان:

 XXX      XXX
 X X      XXX
 XXX      XXX

من فهمي أ buffer(1) على كلاهما سيؤدي إلى هذا:

XXXXX    XXXXX
XXXXX    XXXXX
XXXXX    XXXXX
XXXXX    XXXXX
XXXXX    XXXXX

حاليا buffer(-1) لن تكون قادرة على إنتاج نتيجتين مختلفتين من هذين الشكلين.

بفعالية أ buffer() العملية تفقد المعلومات ، لذلك لا يمكن التراجع عنها دون إعادة إضافة تلك المعلومات من مكان آخر.

نصائح أخرى

لا أعتقد أن هذه الأشكال الهندسية ستكون هي نفسها. بشكل افتراضي ، فإن السلوك المتخلف عن ميزة إضافة رؤوس إلى تكوينه الأصلي ، وليس هناك ما يضمن إزالة الرؤوس نفسها.

حاول القيام بمخزن مؤقت صغير جدًا ، A.Buffer (0.00001) ، على سبيل المثال (1/1000 مم ، إذا كانت إحداثيات في الأنظمة المترية).

في postgis يتم تصحيح بعض القضايا عن طريق القيام بذلك.

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