[postgis-users] Postgis Simplify

Christo Du Preez christo at mecola.com
Wed Jul 27 02:52:33 PDT 2005


Sorry, the 20 tolerance was a typo, it was actually 0.1

strk at refractions.net wrote:

>Christo, you are using two different versions of postgis:
>0.9.1 on Windows and 1.1.0CVS on Gentoo.
>If you want to help you need to provide a self-contained
>test script showing the problem.
>
>BTW, note that 20 is a *really* big number for a tolerance
>in lat/long space.
>
>--strk;
>
>On Wed, Jul 27, 2005 at 11:39:53AM +0200, Christo Du Preez wrote:
>  
>
>>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
>>
>>_______________________________________________
>>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