[postgis-users] Postgis Simplify
Christo Du Preez
christo at mecola.com
Wed Jul 27 02:39:53 PDT 2005
No I don't have a test case, the result on the Windows platform just
didn't look right to me.
Windows:
version: PostgreSQL 8.0.3 on i686-pc-mingw32, compiled by GCC gcc.exe
(GCC) 3.4.2 (mingw-special)
postgis_version: 0.9 USE_GEOS=1 USE_PROJ=1 USE_STATS=1
postgis_lib_version: 0.9.1
postgis_geos_version: 2.1.1
postgis_proj_version: Rel. 4.4.9, 29 Oct 2004
postgis_full_version: POSTGIS="0.9.1" GEOS="2.1.1" PROJ="Rel. 4.4.9,
29 Oct 2004" USE_STATS DBPROC="0.0.1" RELPROC="0.0.1"
Gentoo:
version: PostgreSQL 8.0.2 on i686-pc-linux-gnu, compiled by GCC gcc
(GCC) 3.3.2 20031218 (Gentoo Linux 3.3.2-r5, propolice-3.3-7)
postgis_version: 1.1 USE_GEOS=0 USE_PROJ=1 USE_STATS=1
postgis_lib_version: 1.1.0CVS
postgis_geos_version: 2.1.1
postgis_proj_version: Rel. 4.4.9, 29 Oct 2004
postgis_full_version: POSTGIS="1.1.0CVS" GEOS="2.1.1" PROJ="Rel.
4.4.9, 29 Oct 2004" USE_STATS DBPROC="0.3.0" RELPROC="0.3.0"
At first I recieved an "NOTICE: IllegalArgumentException: Exponent out
of bounds" trying to run:
SELECT
AsSVG(intersection(Simplify(the_geom,20),GeometryFromText('POLYGON((16
-38,33 -38,33 -21,16 -21,16 -38))',-1)),1,1) AS svg_geom
FROM province
WHERE the_geom && setSRID('BOX3D(16 -38, 33 -21)'::box3d,-1)
It was the intersection() function that caused the error for whatever
reason. Then I stripped the intersection() function and and noticed the
exponential format of the results on windows (only on rows 3, 6 and 9),
but the results on linux was lat/long wgs84. After further testing I
noticed using npoints() that some rows on the windows machine didn't
simplify as much as on the linux box. Again this was only on rows 3, 6
and 9. As you can see below.
windows:
1: 25290, 39
2: 23978, 43
3: 25999, 22046
4: 4996, 19
5: 24679, 31
6: 50819, 43120
7: 31899, 71
8: 63292, 45
9: 84990, 70460
10: 12878, 15
11: 1047, 8
linux
1: 25290 39
2: 23978 43
3: 25999 41
4: 4996 19
5: 24679 31
6: 50819 25
7: 31899 71
8: 63292 45
9: 84990 59
10: 12878 15
11: 1047 8
strk at refractions.net wrote:
>Christo, please be specific about your problem.
>Do you have a test case showing unexpected behaviour for
>the simplify() function ?
>Would you include postgis version information in the
>file ?
>
>--strk;
>
>On Tue, Jul 26, 2005 at 09:27:44PM +0200, Christo Du Preez wrote:
>
>
>>I used another installation, this time Linux and did the same test.
>>
>>This time the result was different on rows 3, 6 and 9. More what I was
>>expecting in the first place.
>>
>>1: 25290 : 39
>>2: 23978 : 43
>>3: 25999 : 41
>>4: 4996 : 19
>>5: 24679 : 31
>>6: 50819 : 25
>>7: 31899 : 71
>>8: 63292 : 45
>>9: 84990 : 59
>>10: 12878 : 15
>>11: 1047 : 8
>>
>>In previous posts I also mentioned the exponential format that my result
>>was, doing a Simplify(). I have also noticed that the exponential format
>>was only on rows 3, 6 and 9. The rest of the results was lat/long wgs84,
>>as expected.
>>
>>Can someone please shed some light on this?
>>
>>
>>strk at refractions.net wrote:
>>
>>
>>
>>>Christo, nothing weird about it, not every shape contains redundand
>>>informations.
>>>
>>>Consider a straight line defined by millions of intermediate points.
>>>A simplify(geom, 0) would make it a 2 point line.
>>>
>>>If you google for Douglas-Peuker you'll get
>>>lots of informations about the algorithm.
>>>
>>>--strk;
>>>
>>>On Mon, Jul 25, 2005 at 10:20:23PM +0200, Christo Du Preez wrote:
>>>
>>>
>>>
>>>
>>>>This is really weird.
>>>>
>>>>select npoints(the_geom), npoints(Simplify(the_geom, .1))
>>>>
>>>>
>>>>from province
>>>
>>>
>>>>results to:
>>>>
>>>>1: 25290, 39
>>>>2: 23978, 43
>>>>3: 25999, 22046
>>>>4: 4996, 19
>>>>5: 24679, 31
>>>>6: 50819, 43120
>>>>7: 31899, 71
>>>>8: 63292, 45
>>>>9: 84990, 70460
>>>>10: 12878, 15
>>>>11: 1047, 8
>>>>
>>>>The data is lat/long wgs84, what could cause rows 3,6 and 9 not to
>>>>simplify as much as the others?
>>>>
>>>>_______________________________________________
>>>>postgis-users mailing list
>>>>postgis-users at postgis.refractions.net
>>>>http://postgis.refractions.net/mailman/listinfo/postgis-users
>>>>
>>>>
>>>>
>>>>
>>>_______________________________________________
>>>postgis-users mailing list
>>>postgis-users at postgis.refractions.net
>>>http://postgis.refractions.net/mailman/listinfo/postgis-users
>>>
>>>
>>>
>>>
>>>
>>>
>>--
>>Kind Regards,
>>Christo Du Preez
>>
>>Senior Software Engineer
>>Mecola IT
>>http://www.mecola.com
>>+27 [0]82 4255 895
>>
>>_______________________________________________
>>postgis-users mailing list
>>postgis-users at postgis.refractions.net
>>http://postgis.refractions.net/mailman/listinfo/postgis-users
>>
>>
>_______________________________________________
>postgis-users mailing list
>postgis-users at postgis.refractions.net
>http://postgis.refractions.net/mailman/listinfo/postgis-users
>
>
>
>
--
Kind Regards,
Christo Du Preez
Senior Software Engineer
Mecola IT
http://www.mecola.com
+27 [0]82 4255 895
More information about the postgis-users
mailing list