[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