[postgis-users] expand() and accuracy
Hubert Fröhlich
hubert.froehlich at bvv.bayern.de
Fri Apr 22 06:48:01 PDT 2005
Hi list,
I am using Postgres 8.0.0, Postgis 1.0.0 RC1 and geos 2.1.1 under SuSE
Linux 9.2.
Folgendes Problem:
When using expand(geometry, distance) I found that
select astext(expand(geometryfromtext('MULTIPOLYGON(((4450000
5400000,4450000 5400011,4450011 5400011,4450011
5400000,44500005400000)))',31468),1));
astext
--------------------------------------------------------------------------------------------
POLYGON((4449999 5399999,4449999 5400012,4450012 5400012,4450012
5399999,4449999 5399999))
is ok for distance = 1, and also for the following
select astext(expand(geometryfromtext('MULTIPOLYGON(((4450000
5400000,4450000 5400011,4450011 5400011,4450011
5400000,44500005400000)))',31468),1.5));
astext
----------------------------------------------------------------------------------------------------------------
POLYGON((4449998.5 5399998.5,4449998.5 5400012.5,4450012.5
5400012.5,4450012.5 5399998.5,4449998.5 5399998.5))
however if I enter small values for "distance", as 0.05 , I get
select astext(expand(geometryfromtext('MULTIPOLYGON(((4450000
5400000,4450000 5400011,4450011 5400011,4450011
5400000,44500005400000)))',31468),0.05));
astext
--------------------------------------------------------------------------------------------
POLYGON((4450000 5400000,4450000 5400011,4450011 5400011,4450011
5400000,4450000 5400000))
I don´t get what i`d expect.
Moreover, if I use geometries with small values everything seems OK again.
select astext(expand(geometryfromtext('MULTIPOLYGON(((4450 5400,4450
5400,4450 5400,4450 5400,4450 5400)))',31468),0.05));
astext
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
POLYGON((4449.9501953125 5399.9501953125,4449.9501953125
5400.0498046875,4450.0498046875 5400.0498046875,4450.0498046875
5399.9501953125,4449.9501953125 5399.9501953125))
select astext(expand(geometryfromtext('MULTIPOLYGON(((445000
540000,445000 540001,445001 540001,445001 540000,445000
540000)))',31468),0.05));
astext
------------------------------------------------------------------------------------------------------------------------------------
POLYGON((444999.9375 539999.9375,444999.9375 540001.0625,445001.0625
540001.0625,445001.0625 539999.9375,444999.9375 539999.9375))
I guess it has to do with accuracy handling (small distance and big
geometry coordinates) . Anybody who knows a solution or an explanation?
Thanks.
--
Mit freundlichen Grüßen / With kind regards
Hubert Fröhlich
-------------------------------------------------------------------------------
Dr.-Ing. Hubert Fröhlich
Bezirksfinanzdirektion München
Alexandrastr. 3, D-80538 München, GERMANY
Tel. :+49 (0)89 / 2190 - 2980
Fax :+49 (0)89 / 2190 - 2997
hubert dot froehlich at bvv dot bayern dot de
More information about the postgis-users
mailing list