Opened 16 months ago

Closed 4 weeks ago

#980 closed defect (fixed)

GEOSBuffer emits invalid buffering a collection

Reported by: komzpa Owned by: geos-devel@…
Priority: major Milestone:
Component: Default Version: 3.7.0
Severity: Unassigned Keywords:
Cc:

Description

Follow-up on #978. I replaced Unary Union by Buffer(0), given that all my inputs are polygons. I believe on mailing lists Martin mentioned Overlays-NG are going to be similar to it, so may be worth checking it.

PostGIS query for reference:

09:42:59 [gis] >  select w_geom from tmp_osm_population_raw_nowater where p_geom && '(-7885150.676182366,5282400.9061096404)'::point::geometry::box2d and not ST_IsValid(ST_Buffer(w_geom, 0)) ;
NOTICE:  00000: Self-intersection at or near point -7885150.676182366 5282400.9061096404
LOCATION:  pg_notice, lwgeom_pg.c:265
NOTICE:  00000: Self-intersection at or near point -7885150.676182366 5282400.9061096404
LOCATION:  pg_notice, lwgeom_pg.c:265
Time: 1229,412 ms (00:01,229)

Input collections are elementwise valid:

09:40:41 [gis] >  select ST_IsValid((ST_Dump(w_geom)).geom) from tmp_osm_population_raw_nowater where p_geom && '(-7885150.676182366,5282400.9061096404)'::point::geometry::box2d and not ST_IsValid(ST_Buffer(w_geom, 0)) ;
NOTICE:  00000: Self-intersection at or near point -7885150.676182366 5282400.9061096404
LOCATION:  pg_notice, lwgeom_pg.c:265
NOTICE:  00000: Self-intersection at or near point -7885150.676182366 5282400.9061096404
LOCATION:  pg_notice, lwgeom_pg.c:265
┌────────────┐
│ st_isvalid │
├────────────┤
│ t          │
│ t          │
│ t          │
│ t          │
│ t          │
│ t          │
│ t          │
│ t          │
│ t          │
│ t          │
│ t          │
│ t          │
│ t          │
│ t          │
└────────────┘
(14 rows)

Exhibit 1:

0106000020110F000004000000010300000001000000330000000484E06A4F145EC17F6FB520972654411930D2B74F145EC1B1FFF12E972654416096742251145EC12B18861B97265441000000D054145EC1D3564D0296265441213CEBA358145EC17B649EDD9426544135A0554C61145EC1F187438D9226544108F66E4668145EC1DE9077B09026544134F258B859145EC19A322D5195265441000000D054145EC1936538CD9626544116C8BC4C53145EC143E75D429726544162149C8C51145EC1A9C3DAD997265441C403FE8950145EC1B54BF63A982654415C21BC4750145EC103869D319926544108F5E71951145EC17D9B0BCB992654416C72B8E452145EC13E79C09199265441000000D054145EC143DE9C07992654416A9246AB57145EC149B3FD3998265441000000D054145EC1D685DA4099265441AEDFAF6E51145EC1D89CE5779A26544114CB604051145EC170D0F8819B2654416BEA14B351145EC110DAD22E9C26544108052F7D53145EC1D8EF661B9C265441000000D054145EC1C4A18AC69B2654416A9246AB57145EC1D186620F9B265441000000D054145EC1A70991129C265441AAF29AC551145EC127C872269D265441FE1E6FF350145EC17A550B1F9E265441048AAB0651145EC190E9A3179F265441BB3350FF51145EC1B928833D9F265441000000D054145EC171D5717D9E26544170ED3B5B55145EC1067F56589E265441000000D054145EC1AFC39E8F9E265441BAB5289551145EC1B7F0E9D79F2654415CA95F7951145EC1414CFDE1A0265441077D8B4B52145EC19695FF67A12654411EB120CA53145EC122542042A1265441000000D054145EC14EB97810A12654417075DF8C56145EC1610B1EBCA0265441DCD86FE15A145EC1E46B85C39F265441000000D054145EC1856406CFA12654410E706B9053145EC1FFFDB83AA22654415F1E185452145EC15C4CBBC0A2265441BB3350FF51145EC18F79EFA4A326544172DDF4F752145EC1E9AB3ADEA3265441000000D054145EC1856DE998A32654411D39C4FB54145EC1FC237C92A326544175F0620359145EC1628F9AE6A226544189343FE55C145EC197B1B6B4A12654417583182A56145EC1A7DE8517A42654410484E06A4F145EC1A7DE8517A42654410484E06A4F145EC17F6FB520972654410103000000010000002600000011E0B76D55145EC119DD9C959E2654413A64E61450145EC1D724CA3EA026544127839C0850145EC12EA75141A0265441EEC110FC4F145EC169FD6641A0265441998DBEEF4F145EC19F55093FA0265441041D1FE44F145EC138F64F3AA026544161C8A4D94F145EC1ED586933A026544148A4B6D04F145EC19761992AA0265441A28BACC94F145EC142C23620A026544157BFCBC44F145EC14AA6A714A0265441003D44C24F145EC137C55D08A0265441C5E62EC24F145EC1FE03D2FB9F2654418F8E8CC44F145EC1A9CF7FEF9F265441F6ED45C94F145EC1145FE0E39F265441418B2CD04F145EC1710A66D99F2654419782FCD84F145EC158E677D09F265441EC215FE34F145EC1B2CD6DC99F265441E43DEEEE4F145EC167018DC49F26544143DA3F4855145EC14AED371B9E2654418FBD404955145EC1236FEA1A9E265441C14252C27A145EC10F899022932654417052A6CE7A145EC1B0A13C2093265441DBFE31DB7A145EC11BE55B2093265441C2DB79E77A145EC1BD1FED2293265441081805F37A145EC1D10FD72793265441422262FD7A145EC1D35DE92E93265441FD052B067B145EC11878DE3793265441CD56090D7B145EC13D3F5E42932654417F82B9117B145EC10F69014E93265441DE690D147B145EC1BE78555A932654417326EE137B145EC12925E16693265441D1EB5C117B145EC11002297393265441BDFB720C7B145EC1563EB47E93265441BBAD60057B145EC1904811899326544176936BFC7A145EC14B2CDA919326544151CCEBF17A145EC11B7DB898932654417FA248E67A145EC1CDA8689D9326544111E0B76D55145EC119DD9C959E265441010300000001000000260000006DDAC7F35A145EC14B03D600A0265441ECE616F35A145EC173DE0901A0265441C54E17CC50145EC11FD1D3EAA22654410A1BC0BF50145EC1B9D616EDA22654412AA534B350145EC1B867E6ECA22654414A57F0A650145EC1996044EAA226544185DF6B9B50145EC166A84AE5A2265441B48C189150145EC1E5312ADEA2265441AFF35B8850145EC10A1A29D5A2265441F8078C8150145EC130F69FCAA226544124CEEB7C50145EC1A26CF6BEA22654418AC8A87A50145EC1E7389FB2A22654418B37D97A50145EC107C313A6A2265441AA3E7B7D50145EC12775CF99A2265441DDF6748250145EC162FD4A8EA22654415E6D958950145EC191AAF783A22654413985969250145EC18C113B7BA226544113A91F9D50145EC1D5256B74A2265441A132C9A850145EC101ECCA6FA2265441F52B70CF5A145EC15F671A869F2654414BE1903F77145EC177B7140497265441955DE14B77145EC14A2DAE0197265441EF2A6D5877145EC1FC76BA0197265441D6DBB86477145EC1AA1B39049726544182794B7077145EC16590110997265441EB29B37A77145EC1A729141097265441DE8F898377145EC149F0FB189726544107BA778A77145EC10248712397265441457A398F77145EC14B4D0D2F972654417204A09177145EC195C95D3B97265441C0BA939177145EC1EF96E947972654411216158F77145EC1D64735549726544157A13C8A77145EC182E5C75F9726544115083A8377145EC1EB952F6A972654417341527A77145EC1DEFB057397265441BAE9DC6F77145EC10726F4799726544171E4406477145EC145E6B57E972654416DDAC7F35A145EC14B03D600A02654410103000000010000002C000000FB18A4574F145EC1714B261D972654411830D2B74F145EC1B1FFF12E972654415E96742251145EC12B18861B97265441203CEBA358145EC17B649EDD9426544133A0554C61145EC1EC87438D9226544106F66E4668145EC1DA9077B09026544133F258B859145EC19A322D519526544114C8BC4C53145EC143E75D429726544161149C8C51145EC1A5C3DAD997265441C303FE8950145EC1B14BF63A982654415A21BC4750145EC1FF859D319926544107F5E71951145EC17D9B0BCB992654416A72B8E452145EC13E79C09199265441699246AB57145EC149B3FD3998265441ACDFAF6E51145EC1D89CE5779A26544111CB604051145EC170D0F8819B2654416AEA14B351145EC110DAD22E9C26544106052F7D53145EC1D8EF661B9C265441699246AB57145EC1D186620F9B265441A9F29AC551145EC127C872269D265441FC1E6FF350145EC17A550B1F9E265441028AAB0651145EC190E9A3179F265441B93350FF51145EC1B528833D9F2654416EED3B5B55145EC1027F56589E265441B8B5289551145EC1B4F0E9D79F26544159A95F7951145EC1414CFDE1A0265441067D8B4B52145EC19195FF67A12654411BB120CA53145EC122542042A12654416E75DF8C56145EC15C0B1EBCA0265441DAD86FE15A145EC1E46B85C39F2654410C706B9053145EC1FFFDB83AA22654415D1E185452145EC15C4CBBC0A2265441B93350FF51145EC18B79EFA4A326544170DDF4F752145EC1E9AB3ADEA32654411C39C4FB54145EC1FC237C92A326544172F0620359145EC15D8F9AE6A226544187343FE55C145EC197B1B6B4A1265441BC30AC0B54145EC1A400CCD7A4265441C7F6DDCE51145EC1A50944F6A52654410D60242D51145EC1960C7DE6A7265441504B432150145EC1C90D8EFDA9265441543858CA4F145EC141FC217DAB265441FB18A4574F145EC1D9A5157CAC265441FB18A4574F145EC1714B261D97265441

Exhibit 2:

0106000020110F00000A000000010300000001000000490000007583182A56145EC1A7DE8517A4265441000000D054145EC14C4B3492A4265441BE30AC0B54145EC1A400CCD7A4265441C9F6DDCE51145EC1A50944F6A52654410E60242D51145EC1960C7DE6A7265441514B432150145EC1CD0D8EFDA9265441553858CA4F145EC141FC217DAB265441B53AA51E4F145EC1D1C8C4FAAC26544158A638D14D145EC1F71ED105AE26544157A06D354C145EC1760A4225AF265441FFFEE02C4C145EC1FEC12D56B0265441FA1B484B4D145EC131E9EE27B1265441B2C5EC434E145EC18679859AB1265441582EDC024F145EC120DF69CCB226544114CB604051145EC169202119B3265441000000D054145EC17867023EB326544119CE87E854145EC1B874003FB32654411CC1672D56145EC19CF7F333B226544116DECE4B57145EC16C6FF1ADB1265441D2F2AF5758145EC13AC2D0D3B12654412B1CE09159145EC1417862CDB22654412B1CE09159145EC1F5C2B8E3B52654417D48B4BF58145EC163FFC1A3B5265441C3B1FA1D58145EC19A27A642B52654412C84F5FC55145EC179F72DB7B5265441000000D054145EC1382BC606B6265441B4D85A4F54145EC12FFDCB28B6265441B550B71D53145EC1515C3F3BB62654416601B13551145EC1C24679F0B5265441A9ECCF2950145EC1C8A5EC02B626544152C39FEF4E145EC13DEEADD4B626544158A638D14D145EC126879C8BB82654415996F16D4B145EC1B51C59E4B9265441F52868064C145EC17B3B6FA6B7265441581E959F4C145EC13DEEADD4B62654410087845E4D145EC18CAD80EFB526544104F2C0714D145EC1F2C83230B5265441ACD20CFF4C145EC1F14E4EFEB3265441FB93A4194C145EC169202119B32654415C8306174B145EC18CB9191AB3265441F03588C14A145EC146413F6DB2265441F51821A349145EC15D655DC1B12654419DF96C3049145EC193A1A3EEB02654419DF96C3049145EC18E067483AF265441F1ADE48F49145EC1EB6DB02BAE26544191AB973B4A145EC13D23380DAD265441ABBCFAFF48145EC17CD558E7AC265441939B50D847145EC1E8EE80C0AC265441F608DA3F47145EC1EC794418AE26544148BD519F47145EC1A3867609B026544148BD519F47145EC14A5A58B5B0265441F608DA3F47145EC12D313A61B12654418DA8709346145EC131E9EE27B1265441F115FAFA45145EC14A5A58B5B026544199F6458845145EC152FBDF96AF265441444C4AF045145EC1A5D18AD8AE265441415F354746145EC1D92FCCF9AC26544184D2F76C46145EC11A6EEA4DAC265441F29D9D2C47145EC1FCFBE7C7AB265441ECBA044B48145EC198AF08A2AB265441398CE3C849145EC1F9BC9C8EAB26544100773DFB4A145EC1F9BC9C8EAB265441A174F0A64B145EC14D7E5155AB2654419B9157C54C145EC15AD20396AA265441F4B00B384D145EC1A4D142C4A92654414ED0BFAA4D145EC190E415DFA8265441637CB1F74D145EC139FDE8F9A7265441FE0E28904E145EC11AE470DBA6265441FE0E28904E145EC1293B00BCA52654414ED0BFAA4D145EC1B41160C4A4265441610455294F145EC1EBDD148BA42654418D9DFD324F145EC1A7DE8517A42654417583182A56145EC1A7DE8517A42654410103000000010000002C000000FB18A4574F145EC1714B261D972654411830D2B74F145EC1B1FFF12E972654415E96742251145EC12B18861B97265441203CEBA358145EC17B649EDD9426544133A0554C61145EC1EC87438D9226544106F66E4668145EC1DA9077B09026544133F258B859145EC19A322D519526544114C8BC4C53145EC143E75D429726544161149C8C51145EC1A5C3DAD997265441C303FE8950145EC1B14BF63A982654415A21BC4750145EC1FF859D319926544107F5E71951145EC17D9B0BCB992654416A72B8E452145EC13E79C09199265441699246AB57145EC149B3FD3998265441ACDFAF6E51145EC1D89CE5779A26544111CB604051145EC170D0F8819B2654416AEA14B351145EC110DAD22E9C26544106052F7D53145EC1D8EF661B9C265441699246AB57145EC1D186620F9B265441A9F29AC551145EC127C872269D265441FC1E6FF350145EC17A550B1F9E265441028AAB0651145EC190E9A3179F265441B93350FF51145EC1B528833D9F2654416EED3B5B55145EC1027F56589E265441B8B5289551145EC1B4F0E9D79F26544159A95F7951145EC1414CFDE1A0265441067D8B4B52145EC19195FF67A12654411BB120CA53145EC122542042A12654416E75DF8C56145EC15C0B1EBCA0265441DAD86FE15A145EC1E46B85C39F2654410C706B9053145EC1FFFDB83AA22654415D1E185452145EC15C4CBBC0A2265441B93350FF51145EC18B79EFA4A326544170DDF4F752145EC1E9AB3ADEA32654411C39C4FB54145EC1FC237C92A326544172F0620359145EC15D8F9AE6A226544187343FE55C145EC197B1B6B4A1265441BC30AC0B54145EC1A400CCD7A4265441C7F6DDCE51145EC1A50944F6A52654410D60242D51145EC1960C7DE6A7265441504B432150145EC1C90D8EFDA9265441543858CA4F145EC141FC217DAB265441FB18A4574F145EC1D9A5157CAC265441FB18A4574F145EC1714B261D972654410103000000010000002C000000F4B69CE65E145EC1B73597E3AF2654419B72502B5F145EC1915A214BAF265441F884E4E260145EC1F1FA1440AE265441AB4BF0F962145EC16E3A9A9BAC265441A4F0FA4965145EC1856A3BC5A9265441FD8DD62666145EC172F3A9CBA8265441FC157A5867145EC139FDE8F9A7265441B3BF1E5168145EC11A1AD8E2A5265441FD9D1D8A68145EC1A3DE8517A4265441B1C99A1869145EC18AEB244EA22654410291FDCE69145EC1CC70E399A22654410BEF19276B145EC1192E0474A226544110E2F96B6C145EC115837786A2265441106A9D9D6D145EC1F703C545A32654412033F6086F145EC1A3DE8517A42654412526D64D70145EC1E7DD148BA42654411F433D6C71145EC1D022F4B0A4265441DB571E7872145EC1DE45ABFDA426544124BEC0E273145EC11A1AD8E2A52654413CDF6A0A75145EC12876DA68A626544185BD694375145EC10D96E1FAA7265441D8F984D476145EC124180C5AA8265441EE2D1A5378145EC1916E7AF3A8265441EE2D1A5378145EC175172DB5AB265441D50C702B77145EC1C524DE42AB2654413E670E3C76145EC17C7F8B0AAB26544128B1A02775145EC10602BBE2AA26544124BEC0E273145EC179586D23AA265441727F58FD72145EC10E2EF504A926544172F7B4CB71145EC1FE1B11D3A7265441C030A9B46F145EC14F9BE673A72654410B8704BC6E145EC11AE470DBA626544115D5D9B06D145EC12DCD4D7BA6265441B7C245F96B145EC11A1AD8E2A52654410684DD136B145EC1DF704BF5A526544165862A686A145EC1C4D331ADA7265441AEDC856F69145EC159A48B77A92654419E132D0468145EC18FB6DBBCAA26544150424E8666145EC181E1BFEEAB2654414C4F6E4165145EC16FA6CE7FAD265441579D433664145EC1F6E8B2B1AE265441951D261763145EC11CF04BAAAF2654419067CFB362145EC1B73597E3AF265441F4B69CE65E145EC1B73597E3AF26544101030000000100000029000000FC1462F75C145EC1902617F2A12654415550B3F351145EC1CB0EF73BA5265441B38C1EEF51145EC18679263DA526544104443A4250145EC1EB5A589BA5265441F9C7C43550145EC16386D29CA5265441ECCD422950145EC1D430D79BA5265441B5622F1D50145EC1DD027098A52654418453011250145EC11777BE92A5265441189D260850145EC1C390FA8AA5265441BD31000050145EC1B4B47081A5265441823FDEF94F145EC1C8B97E76A52654416E1BFDF54F145EC1B14D906AA5265441F6EF82F44F145EC1A6D11A5EA526544185457EF54F145EC199D79851A52654417C73E5F84F145EC1626C8545A526544142FF96FE4F145EC1315D573AA526544196E55A0650145EC1C5A67C30A5265441A5C1E40F50145EC16A3B5628A526544191BCD61A50145EC12F493422A5265441A828C52650145EC11B25531EA5265441C17259D151145EC1D547A3C0A426544137E3EFD25C145EC16A816377A126544182D848D35C145EC122384977A1265441BC4C0F716E145EC157C38F509C265441378B637D6E145EC105D43C4E9C2654412235EF896E145EC1D9135D4E9C26544159DE36966E145EC19045EF509C265441B9B7C1A16E145EC1E21DDA559C265441A3331EAC6E145EC1603CED5C9C2654411F63E6B46E145EC15E07E3659C265441ACE0C3BB6E145EC1AB5863709C265441362273C06E145EC1C7E0067C9C2654418811C6C26E145EC1421F5B889C265441B4D1A5C26E145EC12DC9E6949C265441FD9F13C06E145EC164722EA19C265441ABC728BB6E145EC1C44BB9AC9C2654412DA915B46E145EC1AEC715B79C2654412FDE1FAB6E145EC12AF7DDBF9C265441E28C9FA06E145EC1B774BBC69C265441C604FC946E145EC141B66ACB9C265441FC1462F75C145EC1902617F2A1265441010300000001000000260000006DDAC7F35A145EC14B03D600A0265441ECE616F35A145EC173DE0901A0265441C54E17CC50145EC11FD1D3EAA22654410A1BC0BF50145EC1B9D616EDA22654412AA534B350145EC1B867E6ECA22654414A57F0A650145EC1996044EAA226544185DF6B9B50145EC166A84AE5A2265441B48C189150145EC1E5312ADEA2265441AFF35B8850145EC10A1A29D5A2265441F8078C8150145EC130F69FCAA226544124CEEB7C50145EC1A26CF6BEA22654418AC8A87A50145EC1E7389FB2A22654418B37D97A50145EC107C313A6A2265441AA3E7B7D50145EC12775CF99A2265441DDF6748250145EC162FD4A8EA22654415E6D958950145EC191AAF783A22654413985969250145EC18C113B7BA226544113A91F9D50145EC1D5256B74A2265441A132C9A850145EC101ECCA6FA2265441F52B70CF5A145EC15F671A869F2654414BE1903F77145EC177B7140497265441955DE14B77145EC14A2DAE0197265441EF2A6D5877145EC1FC76BA0197265441D6DBB86477145EC1AA1B39049726544182794B7077145EC16590110997265441EB29B37A77145EC1A729141097265441DE8F898377145EC149F0FB189726544107BA778A77145EC10248712397265441457A398F77145EC14B4D0D2F972654417204A09177145EC195C95D3B97265441C0BA939177145EC1EF96E947972654411216158F77145EC1D64735549726544157A13C8A77145EC182E5C75F9726544115083A8377145EC1EB952F6A972654417341527A77145EC1DEFB057397265441BAE9DC6F77145EC10726F4799726544171E4406477145EC145E6B57E972654416DDAC7F35A145EC14B03D600A0265441010300000001000000460000004C3D5CD075145EC17552FF24B126544100E9E2FB75145EC183B030E2B02654418959F3A576145EC11408B38DAF26544198209DAE76145EC12B58A580AF265441B15230BA76145EC107971676AF265441F7AB138378145EC1F8FE2332AE265441475399217A145EC1542BA8DBAC265441475399217A145EC1F4B40AF5AB265441164C858479145EC159A61E51AB265441C9AFF11577145EC1FC578D14AA2654416EA78EB375145EC1C2D394C9A92654418CD3FBA775145EC1B462F5C5A9265441ED234D9D75145EC11CB237C0A92654418AA67CD273145EC1999B538EA82654419F6779C773145EC113FA0885A8265441D2880F8672145EC1B13EEF30A7265441E81931A170145EC17FE158BBA5265441F03623126E145EC19AD7E0C8A42654417CB14DD96A145EC167B00826A4265441B02A727369145EC1D2936221A6265441ACF0D61E69145EC1D6C1113EA82654410B262B1C69145EC1EE5EE048A8265441804BAA1769145EC165A40E53A82654417242771169145EC16AB74D5CA82654413B0FC20969145EC1DDF95564A826544187378BB865145EC186568B4BAB265441DB91116265145EC19E51FF9BAB265441DB91116265145EC158DD2AEDAA265441C774836365145EC17515DDEBAA2654413AB0F8A368145EC14FDE5113A826544123F94BF768145EC1F16DD2FEA526544170DE34FB68145EC17DD1B1F0A526544127673A0269145EC175CDD3E3A5265441CDD9A5886A145EC1A7B14FBAA3265441B5C2A4906A145EC1727D03B1A32654413A10449A6A145EC1EC6069A9A32654419D5229A56A145EC1ECCEC8A3A32654419022EEB06A145EC1E0AA56A0A3265441AEE323BD6A145EC1BB57339FA32654410DD457C96A145EC18C8769A0A32654416E57F32F6E145EC1D2204B4CA42654412763C5396E145EC166B10F4FA426544139B4C1D670145EC14DD9AF46A5265441CA2388DF70145EC1E920B64AA52654419D0C9AE770145EC136950250A526544142FD2CD872145EC1DDBA9DCEA6265441AEF7A0DF72145EC1AFB05AD5A62654418807861F74145EC12A02D927A826544189A113DA75145EC14BB4E54EA9265441F30BAF3877145EC152851199A9265441941A724877145EC1E156A29EA9265441B69938C879145EC1866CF2E3AA26544166165CD179145EC1B0409BE9AA2654411D196CD979145EC12430B7F0AA2654416DE0CE8F7A145EC1F5450CAFAB265441C9E75F977A145EC17B6CA0B8AB2654417A22FC9C7A145EC1DEBC77C3AB26544142516FA07A145EC152412DCFAB265441475399A17A145EC1BAEE53DBAB265441475399A17A145EC1D92FCCF9AC265441FA2E0EA07A145EC15AC2C407AD2654415DD17F9B7A145EC1B1D01015AD265441ED7C26947A145EC1F8280C21AD265441ACF05C8A7A145EC10FD7222BAD2654414EDEC8D278145EC153585296AE265441BFB109CF78145EC1320A3199AE265441029F4C1177145EC177DD3BD5AF265441E12FC36C76145EC11F7FA81EB1265441E64D216976145EC17552FF24B12654414C3D5CD075145EC17552FF24B126544101030000000100000008000000FE9D1D8A68145EC1A7DE8517A4265441B3C99A1869145EC18EEB244EA22654410391FDCE69145EC1CC70E399A22654410EEF19276B145EC1192E0474A226544111E2F96B6C145EC115837786A2265441126A9D9D6D145EC1F703C545A32654412133F6086F145EC1A7DE8517A4265441FE9D1D8A68145EC1A7DE8517A4265441010300000001000000230000002B1CE09159145EC1417862CDB2265441D10C73825B145EC176FBD066B32654418E21548E5C145EC176FBD066B326544139F57F605D145EC163DA376EB22654413312E77E5E145EC1C6E8BCC9B02654419C72502B5F145EC1965A214BAF265441FB84E4E260145EC1F4FA1440AE265441AC4BF0F962145EC16E3A9A9BAC265441A6F0FA4965145EC1856A3BC5A9265441FF8DD62666145EC172F3A9CBA8265441FE157A5867145EC139FDE8F9A7265441B5BF1E5168145EC11F1AD8E2A5265441FE9D1D8A68145EC1A7DE8517A4265441C80D77FA6C145EC1A7DE8517A4265441C80D77FA6C145EC195F40B3CA6265441B9C245F96B145EC11F1AD8E2A52654410884DD136B145EC1DF704BF5A526544166862A686A145EC1C4D331ADA7265441AFDC856F69145EC159A48B77A9265441A0132D0468145EC18FB6DBBCAA26544151424E8666145EC181E1BFEEAB2654414E4F6E4165145EC16FA6CE7FAD265441589D433664145EC1FBE8B2B1AE265441971D261763145EC11CF04BAAAF26544191AC1E6861145EC1FFFDE4A2B02654418D37668D60145EC13EB83CE7B12654413318B21A60145EC1BD0B97B1B32654414066870F5F145EC1246E5D8FB5265441DB705A765E145EC13DEEADD4B626544193925B3D5E145EC1DB046015B6265441E64008015D145EC1F3EDA34FB6265441796BE6795B145EC16EAC8A74B6265441747806355A145EC1DB046015B62654412B1CE09159145EC1F5C2B8E3B52654412B1CE09159145EC1417862CDB22654410103000000010000004D000000C80D77FA6C145EC1A7DE8517A42654412133F6086F145EC1A7DE8517A42654412626D64D70145EC1EBDD148BA426544121433D6C71145EC1D422F4B0A4265441DC571E7872145EC1E345ABFDA426544126BEC0E273145EC11F1AD8E2A52654413EDF6A0A75145EC12876DA68A626544187BD694375145EC10D96E1FAA7265441DAF984D476145EC124180C5AA8265441EF2D1A5378145EC1956E7AF3A82654418C48341D7A145EC1A9E41066A926544143F2D8157B145EC11BD53D4BAA265441962478DF7B145EC15887639EA9265441F4AE68657C145EC19010CD2BA926544196AC1B117D145EC12C707F6CA8265441EFCBCF837D145EC150E3C599A7265441A675747C7E145EC10ABDB98EA6265441EF5373B57E145EC1293B00BCA52654419A279F877F145EC132CD4D7BA62654415CA7BCA680145EC1190499B4A62654415CA7BCA680145EC10CE7E124A9265441A307947580145EC128B85919A92654415D1F19757F145EC12C707F6CA82654419534BF427E145EC172F3A9CBA826544196AC1B117D145EC132799083AA265441F4AE68657C145EC1643B3301AC2654414ECE1CD87C145EC13558EF59AD2654419041DFFD7C145EC17600DB8AAE265441FF84E18B7C145EC1C8402BD0AF265441EEC504E87B145EC1BBA17190B0265441FA9101477B145EC193F38214B12654419C89E9567A145EC1AA8C7B15B12654419D7F6D8F79145EC1AB08798FB0265441E6D5C89678145EC1C8402BD0AF2654419399AD0577145EC1D8DE5A3BB1265441D60C702B77145EC1F94AD359B2265441901B869B76145EC1DA0DF93FB3265441DB71E1A275145EC10B471CA0B32654412546641475145EC1153EC496B42654418D1E2A8F74145EC15A0FEA7CB5265441D6F65D2C73145EC16696C429B6265441D381A55172145EC18DF541C1B62654416E0E514E71145EC1BDD467A7B726544180458AC070145EC1BE77565EB92654416A99987370145EC14A2A6369BA265441166DC44571145EC1E1251D3CBB265441DC571E7872145EC1E8ECE319BD26544122BB993A70145EC1C0DD016EBC2654412133F6086F145EC1CA82FC61BB2654416A8951106E145EC11484B634BC265441BFB5253E6D145EC1E8ECE319BD265441C80D77FA6C145EC163F8DC8CBD265441C80D77FA6C145EC1711AA7A3BA265441D36B93526E145EC1ABBBE5D1B92654416EFE09EB6E145EC11AC0217AB826544175E76D686F145EC17E468DFAB62654416A99987370145EC1455E35B6B5265441C340F01772145EC1F5F0785DB426544125361DB172145EC1CA57E2EAB326544136FF751C74145EC1ADD5D5DFB2265441E1D2A1EE74145EC12D313A61B126544194110AD475145EC1B73597E3AF26544188C334DF76145EC121B1FB64AE26544144D815EB77145EC16FA6CE7FAD2654413EF57C0979145EC120615661AC265441E16A8C8378145EC1FCFBE7C7AB265441D60C702B77145EC1C524DE42AB2654413F670E3C76145EC17C7F8B0AAB26544129B1A02775145EC10A02BBE2AA26544126BEC0E273145EC179586D23AA265441737F58FD72145EC10E2EF504A926544175F7B4CB71145EC1021C11D3A7265441C230A9B46F145EC14F9BE673A72654410C8704BC6E145EC11AE470DBA626544118D5D9B06D145EC132CD4D7BA6265441C80D77FA6C145EC195F40B3CA6265441C80D77FA6C145EC1A7DE8517A4265441010300000001000000330000000484E06A4F145EC17F6FB520972654411930D2B74F145EC1B1FFF12E972654416096742251145EC12B18861B97265441000000D054145EC1D3564D0296265441213CEBA358145EC17B649EDD9426544135A0554C61145EC1F187438D9226544108F66E4668145EC1DE9077B09026544134F258B859145EC19A322D5195265441000000D054145EC1936538CD9626544116C8BC4C53145EC143E75D429726544162149C8C51145EC1A9C3DAD997265441C403FE8950145EC1B54BF63A982654415C21BC4750145EC103869D319926544108F5E71951145EC17D9B0BCB992654416C72B8E452145EC13E79C09199265441000000D054145EC143DE9C07992654416A9246AB57145EC149B3FD3998265441000000D054145EC1D685DA4099265441AEDFAF6E51145EC1D89CE5779A26544114CB604051145EC170D0F8819B2654416BEA14B351145EC110DAD22E9C26544108052F7D53145EC1D8EF661B9C265441000000D054145EC1C4A18AC69B2654416A9246AB57145EC1D186620F9B265441000000D054145EC1A70991129C265441AAF29AC551145EC127C872269D265441FE1E6FF350145EC17A550B1F9E265441048AAB0651145EC190E9A3179F265441BB3350FF51145EC1B928833D9F265441000000D054145EC171D5717D9E26544170ED3B5B55145EC1067F56589E265441000000D054145EC1AFC39E8F9E265441BAB5289551145EC1B7F0E9D79F2654415CA95F7951145EC1414CFDE1A0265441077D8B4B52145EC19695FF67A12654411EB120CA53145EC122542042A1265441000000D054145EC14EB97810A12654417075DF8C56145EC1610B1EBCA0265441DCD86FE15A145EC1E46B85C39F265441000000D054145EC1856406CFA12654410E706B9053145EC1FFFDB83AA22654415F1E185452145EC15C4CBBC0A2265441BB3350FF51145EC18F79EFA4A326544172DDF4F752145EC1E9AB3ADEA3265441000000D054145EC1856DE998A32654411D39C4FB54145EC1FC237C92A326544175F0620359145EC1628F9AE6A226544189343FE55C145EC197B1B6B4A12654417583182A56145EC1A7DE8517A42654410484E06A4F145EC1A7DE8517A42654410484E06A4F145EC17F6FB52097265441

Change History (6)

comment:1 Changed 15 months ago by dbaston

Can you please provide all arguments to GEOSBuffer in this ticket?

What do exhibits 1 and 2 represent?

comment:2 Changed 15 months ago by mdavis

Confirmed that JTS buffer(0) exhibits the same issue. It produces an invalid output on both geometries above (of which the first is a subset of the second).

This is almost certainly due to a noding robustness failure, in an area with several very close high precision vertices:

A
[]  POLYGON(108)
Ring-CW  Vert[0 11]  POINT ( -7885150.676182368 5282400.906109639 )
Ring-CW  Vert[0 12]  POINT ( -7885150.676182364 5282400.90610964 )
Ring-CW  Vert[0 13]  POINT ( -7885150.676182369 5282400.906109639 )

Some light precision reduction might solve this problem, in this case.

comment:3 Changed 15 months ago by mdavis

Snap-rounding is highly applicable to buffer construction, and should solve problems like this. It's probably too much impact to try and add it to the current (complex) buffer code, so that may have to wait for a rewrite using the upcoming OverlayNG framework. Although at that point UnaryUnion? should work as well.

comment:4 Changed 6 weeks ago by strk

I'd like to test this with current GEOS but there's in input in this ticket ? Martin where did you find the input ? Both exhibit1 and exhibit2 are self-intersecting multipolygons. In both cases Buffer(0) output a still-invalid geometry, while UnaryUnion? fixes the invalidity. I don't think by contract Buffer(0) is to be guaranteed to output a valid geometry from an invalid one ?

comment:5 Changed 6 weeks ago by mdavis

The data is in #979 and #978.

Yes, there is no contract about buffer(0) fixing invalid geometry (although it actually does for many cases). We should focus on ensuring that OverlayNG works with this data (and it is included as part of the OverlayNG robustness unit tests here

comment:6 Changed 4 weeks ago by strk

Resolution: fixed
Status: newclosed

The test is already included in GEOS testsuite, data from 979 passes in current GEOS so I'm closing this

Note: See TracTickets for help on using tickets.