[postgis-users] valid MULTIPOLYGONs and order of vertices?

Hubert Fröhlich hubert.froehlich at bvv.bayern.de
Tue Apr 26 06:44:22 PDT 2005


wrong link, sorry ...

>> You can use simplify(geom, 0) as a mean to remove useless vertexes
>> (in [0 0, 0 5, 0 10] 0 5 is useless)
> 
> thanks!
> 
>>
>> I haven't read the specs about OGC validity of the shapes,
>> anyway JTS gives the same valid result (postgis/jts is a killer
>> GEOS debugger!!).
> 
> 
> 
> I think that shape is only "near" OGC SFS, but the "standard" (i.e. it 
> is   a de-facto standard, "commonly used")  was developed by ESRI and 
> the last update was 1998 . The current SFS came out in 1999 . Some 
> concepts are the same, but in detail - hmmm, I read 

the correct link: http://dl.maptools.org/dl/shapelib/shapefile.pdf

> 
> "Because this specification does not forbid consecutive points with 
> identical coordinates, shapefile readers must handle such cases. On the 
> other hand, the degenerate, zero length or zero area parts that might 
> result are not allowed." According to this, the Postgis way of Shape 
> should be OK and my statement (see below: " does not conform to the 
> specs") is somewhat wrong. However, we have customers who claim that 
> some ESRI products report this behavior as an error.
> 
> So, the dilemma of the quasi-standard
>  * A correct Shape is what is defined by the specs (or is it just  a 
> white paper?)
> vs.
>  * A correct Shape is (more or less) what can be treated by ESRI 
> software without errors
> 
> will remain forever...
> 
> Greetings,
> Hubert
> 
>>
>> --strk;
>>
>> On Tue, Apr 26, 2005 at 01:13:22PM +0200, Hubert Fröhlich wrote:
>>
>>> Hi list,
>>> I am using Postgres 8.0.0, Postgis 1.0.0 RC1 and geos 2.1.1 under SuSE
>>> Linux 9.2.
>>>
>>>
>>> Say I have a polygon like
>>>
>>>
>>>
>>> select isValid('MULTIPOLYGON(((4457484.31 5403325.86, 4457473.8 
>>> 5403324.77, 4457473.29 5403329.76, 4457472.55 5403330.04, 4457471.9 
>>> 5403330.68, 4457471.64 5403331.45, 4457471.26 5403335.14, 4457471.42 
>>> 5403335.87, 4457471.88 5403336.47, 4457472.53 5403336.79, 4457472.08 
>>> 5403341.31, 4457472.04 5403341.71, 4457472.03 5403341.83, 4457513.210 
>>> 5403346.130, 4457513.219 5403346.129, 4457513.266 5403346.120, 
>>> 4457513.314 5403346.109, 4457513.360 5403346.096, 4457513.406 
>>> 5403346.081, 4457513.452 5403346.063, 4457513.496 5403346.044, 
>>> 4457513.539 5403346.022, 4457513.582 5403345.998, 4457513.623 
>>> 5403345.973, 4457513.663 5403345.945, 4457513.670 5403345.940, 
>>> 4457513.680 5403345.933, 4457513.718 5403345.903, 4457513.754 
>>> 5403345.871, 4457513.789 5403345.837, 4457513.823 5403345.802, 
>>> 4457513.854 5403345.765, 4457513.884 5403345.727, 4457513.912 
>>> 5403345.687, 4457513.938 5403345.646, 4457513.963 5403345.604, 
>>> 4457513.985 5403345.561, 4457513.99 5403345.55, 4457514.61 
>>> 5403339.69, 4457515.27 5403339.78, 4457515.76 5403335.67, 4457515.04 
>>> 5403335.56, 4457515.660 5403329.770, 4457515.660 5403329.769, 
>>> 4457515.643 5403329.718, 4457515.624 5403329.668, 4457515.602 
>>> 5403329.619, 4457515.578 5403329.571, 4457515.552 5403329.524, 
>>> 4457515.524 5403329.478, 4457515.494 5403329.434, 4457515.461 
>>> 5403329.391, 4457515.427 5403329.350,
>>> <i mean this>
>>> 4457515.390 5403329.310, 4457515.390 5403329.310,
>>> </i mean this>
>>> 4457515.378 5403329.298, 4457515.339 5403329.261, 4457515.299 
>>> 5403329.225, 4457515.257 5403329.192, 4457515.213 5403329.161, 
>>> 4457515.168 5403329.131, 4457515.122 5403329.104, 4457515.074 
>>> 5403329.079, 4457515.026 5403329.057, 4457515.01 5403329.05, 
>>> 4457514.91 5403329.03, 4457507.42 5403328.25, 4457484.31 
>>> 5403325.86)))' );
>>> isvalid
>>> ---------
>>> t
>>>
>>>
>>> Postgis will check it as valid despite it has two identic points 
>>> following each other.
>>>
>>> a) Is this correct?
>>> b) When I produce a shape from this with pgsql2shp, both points are 
>>> written to a shape, producing a shape that does not conform to the 
>>> specs.
>>> c) How to avoid that? I.e. is there a way to suppress subsequent 
>>> identical points?
>>> -- 
>>> 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
>>> _______________________________________________
>>> 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
> 
> 

-- 
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