[prev in list] [next in list] [prev in thread] [next in thread] 

List:       postgis-users
Subject:    Re: [postgis-users] error with buffer()
From:       Kevin Neufeld <kneufeld () refractions ! net>
Date:       2008-04-25 16:18:53
Message-ID: 4812046D.1090409 () refractions ! net
[Download RAW message or body]

Instead of using buffer(geom, 0) you could rebuild the polygon manually.

This works...

SELECT
ST_BuildArea(
ST_Union(
ST_Boundary(the_geom),
ST_PointN(ST_Boundary(the_geom),1)
)
)
FROM
(SELECT 'MULTIPOLYGON...'::geometry);

-- Kevin


Stefan Zweig wrote:
> Hi paul,
> 
> here we go, there is the new animal for your "zoo":
> 
> select buffer(st_geomFromText('MULTIPOLYGON(((12.098789 50.905962,12.020813 \
> 50.947952,12.017285 50.967973,12.090563 50.976663,12.163175 50.959211,12.133071 \
> 50.932547,12.154221 50.884623,12.098789 50.905962),(12.1286244 \
> 50.8950136,12.1287442 50.8951404,12.1278504 50.8950303,12.1278598 \
> 50.8948964,12.1286244 50.8950136),(12.0922723 50.9546386,12.0926358 \
> 50.9541698,12.092428 50.955268,12.0922918 50.9551482,12.0922723 \
> 50.9546386),(12.1087437 50.8989343,12.1078831 50.8989326,12.107387 \
> 50.898063,12.1079471 50.8986231,12.1087437 50.8989343),(12.1228954 \
> 50.9164961,12.1233835 50.9177103,12.1224951 50.918326,12.1212225 \
> 50.9188562,12.1228954 50.9164961),(12.142612 50.884225,12.1490617 \
> 50.8856118,12.149222 50.885687,12.1437629 50.8846708,12.142612 \
> 50.884225),(12.090005 50.955723,12.0901606 50.9556077,12.0940001 \
> 50.9560483,12.0920097 50.9573598,12.090005 50.955723),(12.1515115 \
> 50.9369131,12.1504699 50.9391583,12.148134 50.93827,12.1503487 50.938083,12.1515115 \
> 50.9369131),(12.1360606 50.8892593,12.1344196 50.8892146,12.1357368 \
> 50.8858406,12.1399245 50.8865412,12.1360606 50.8892593),(12.087163 \
> 50.927347,12.0851166 50.9255544,12.084949 50.924396,12.08763 50.9271838,12.0894109 \
> 50.9306506,12.088262 50.932468,12.087163 50.927347),(12.0873679 \
> 50.9640895,12.0886015 50.9574848,12.069322 50.955508,12.094624 50.954051,12.1028119 \
> 50.9615,12.0873679 50.9640895)),((12.0832251 50.8628502,12.072535 \
> 50.8760369,12.0803652 50.8942363,12.0954397 50.8841184,12.0832251 \
> 50.8628502)),((12.089448 50.957301,12.089702 50.959116,12.0927875 \
> 50.9596698,12.0938183 50.9579664,12.089448 50.957301)),((12.0964798 \
> 50.9605757,12.0969206 50.9605509,12.0939251 50.9599157,12.0952655 \
> 50.960698,12.0964798 50.9605757)),((12.089702 50.959116,12.0901026 \
> 50.9596047,12.0926431 50.9598645,12.0907201 50.9594751,12.089702 50.959116)))'),0); \
>  the select crashes with
> 
> select postgis_full_version()
> "POSTGIS="1.3.3" GEOS="3.0.0-CAPI-1.4.1" PROJ="Rel. 4.6.0, 21 Dec 2007" USE_STATS"
> 
> regards,
> 
> stefan
> 
> 
> 
> > -----Ursprüngliche Nachricht-----
> > Von: PostGIS Users Discussion <postgis-users@postgis.refractions.net>
> > Gesendet: 22.04.08 17:05:32
> > An: "PostGIS Users Discussion" <postgis-users@postgis.refractions.net>
> > Betreff: Re: [postgis-users] error with buffer()
> > 
> 
> 
> 
> > Send in your geometry! Some geometry/parameter combinations break
> > ST_Buffer() and we like to add those to our zoo of unusual and
> > interesting cases for future improvement.
> > 
> > P
> > 
> > In the meantime, try slightly simplifying your geometry first, or
> > doing your buffer in 2 or more steps of smaller tolerances, or
> > sacrificing a goat before starting the function call... :)
> > 
> > On Tue, Apr 22, 2008 at 2:52 AM, Stefan Zweig <stefanzweig1881@web.de> wrote:
> > 
> > > hi list,
> > > 
> > > there seems to be an error within the buffer(geometry, precision) function.
> > > 
> > > i just tried to the following statement:
> > > UPDATE _g2870 SET the_geom_3_b = buffer(the_geom_3, 0) WHERE \
> > > isValid(the_geom_3) = false; and it resulted into a broken connection to the \
> > > postmaster. postgis seems to have problems with the buffer function and invalid \
> > > geometries. the server.log says the following: 
> > > bufferOriginalPrecision failed (TopologyException: unable to assign hole to a \
> > > shell), trying with reduced precision recomputing with precision scale factor = \
> > >                 1e+12
> > > Scaler: offsetX,Y: 0,0 scaleFactor: 1e+12
> > > ReScaler: offsetX,Y: 0,0 scaleFactor: 1e+12
> > > recomputing with precision scale factor = 1e+11
> > > Scaler: offsetX,Y: 0,0 scaleFactor: 1e+11
> > > ReScaler: offsetX,Y: 0,0 scaleFactor: 1e+11
> > > recomputing with precision scale factor = 1e+10
> > > Scaler: offsetX,Y: 0,0 scaleFactor: 1e+10
> > > ReScaler: offsetX,Y: 0,0 scaleFactor: 1e+10
> > > recomputing with precision scale factor = 1e+09
> > > Scaler: offsetX,Y: 0,0 scaleFactor: 1e+09
> > > ReScaler: offsetX,Y: 0,0 scaleFactor: 1e+09
> > > recomputing with precision scale factor = 1e+08
> > > Scaler: offsetX,Y: 0,0 scaleFactor: 1e+08
> > > ReScaler: offsetX,Y: 0,0 scaleFactor: 1e+08
> > > recomputing with precision scale factor = 1e+07
> > > Scaler: offsetX,Y: 0,0 scaleFactor: 1e+07
> > > ReScaler: offsetX,Y: 0,0 scaleFactor: 1e+07
> > > recomputing with precision scale factor = 1e+06
> > > Scaler: offsetX,Y: 0,0 scaleFactor: 1e+06
> > > ReScaler: offsetX,Y: 0,0 scaleFactor: 1e+06
> > > recomputing with precision scale factor = 100000
> > > Scaler: offsetX,Y: 0,0 scaleFactor: 100000
> > > ReScaler: offsetX,Y: 0,0 scaleFactor: 100000
> > > recomputing with precision scale factor = 10000
> > > Scaler: offsetX,Y: 0,0 scaleFactor: 10000
> > > ReScaler: offsetX,Y: 0,0 scaleFactor: 10000
> > > recomputing with precision scale factor = 1000
> > > Scaler: offsetX,Y: 0,0 scaleFactor: 1000
> > > pdata 10.100.6.140(1782) UPDATE: \
> > > ../../source/headers/geos/noding/SegmentString.h:175: void \
> > > geos::noding::SegmentString::testInvariant() const: Zusicherung  »pts->size() \
> > > >                 1Â « nicht erf�llt.
> > > LOG: server process (PID 7510) was terminated by signal 6
> > > LOG: terminating any other active server processes
> > > WARNING: terminating connection because of crash of another server process
> > > DETAIL: The postmaster has commanded this server process to roll back the \
> > > current transaction and exit, because another server process exited abnormally \
> > >                 and possibly corrupted shared memory.
> > > HINT: In a moment you should be able to reconnect to the database and repeat \
> > >                 your command.
> > > WARNING: terminating connection because of crash of another server process
> > > DETAIL: The postmaster has commanded this server process to roll back the \
> > > current transaction and exit, because another server process exited abnormally \
> > >                 and possibly corrupted shared memory.
> > > HINT: In a moment you should be able to reconnect to the database and repeat \
> > >                 your command.
> > > LOG: all server processes terminated; reinitializing
> > > LOG: database system was interrupted at 2008-04-22 11:18:52 CEST
> > > LOG: checkpoint record is at 0/9A4F7BC8
> > > LOG: redo record is at 0/9A4F7BC8; undo record is at 0/0; shutdown TRUE
> > > LOG: next transaction ID: 0/51508; next OID: 322761
> > > LOG: next MultiXactId: 1; next MultiXactOffset: 0
> > > LOG: database system was not properly shut down; automatic recovery in progress
> > > LOG: redo starts at 0/9A4F7C18
> > > LOG: unexpected pageaddr 0/9161E000 in log file 0, segment 154, offset 6414336
> > > LOG: redo done at 0/9A61D790
> > > LOG: database system is ready
> > > 
> > > 
> > > my postgis_version is:
> > > select postgis_full_version()
> > > "POSTGIS="1.3.3" GEOS="3.0.0-CAPI-1.4.1" PROJ="Rel. 4.6.0, 21 Dec 2007" \
> > > USE_STATS" 
> > > any ideas?
> > > 
> > > regards,
> > > stefan
> > > _______________________________________________________________________
> > > Jetzt neu! Schützen Sie Ihren PC mit McAfee und WEB.DE. 30 Tage
> > > kostenlos testen. http://www.pc-sicherheit.web.de/startseite/?mc=022220
> > > 
> > > _______________________________________________
> > > postgis-users mailing list
> > > postgis-users@postgis.refractions.net
> > > http://postgis.refractions.net/mailman/listinfo/postgis-users
> > > 
> > > 
> > _______________________________________________
> > postgis-users mailing list
> > postgis-users@postgis.refractions.net
> > http://postgis.refractions.net/mailman/listinfo/postgis-users
> > 
> > 
> 
> 
> ______________________________________________________
> Bis 50 MB Dateianhänge? Kein Problem!
> http://freemail.web.de/club/landingpage.htm/?mc=025556
> 
> _______________________________________________
> postgis-users mailing list
> postgis-users@postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users
> 

_______________________________________________
postgis-users mailing list
postgis-users@postgis.refractions.net
http://postgis.refractions.net/mailman/listinfo/postgis-users


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic