[OSM-talk] multipolygon inners that aren't inside.

John Harvey john at JohnHarveyPhoto.com
Mon Jul 12 20:27:38 BST 2010


It sure would be nice if users couldn't submit bad data.  Incorrect data 
(wrong street name) takes a human to spot, but bad topology (doesn't 
conform to the rules and a computer can verify conformance) shouldn't be 
possible to submit.  For instance look at this relation:

http://www.openstreetmap.org/browse/relation/542980

Two ways are marked as inners but nothing is inside anything else.  The 
problem is these kinds of errors present a barrier to entry for anyone 
using the OSM data - if you try to write a "by the books" renderer for 
this area you get a spill.  To render it correctly you have to test ways 
marked the inner are actually inside something marked outside.

Mapnik and Osmarender render this area "correctly" so I believe they 
have inside/outside tests.  NoName doesn't render the outers and doesn't 
spill - I believe it detects the error and handles it in a different 
way.  Maplint doesn't appear to catch this error.  If the code in those 
three renderers (which catch this error and handle it two different 
ways) was instead in the submission engine the OSM data would be better 
for it.

A few other examples of the same problem:

269371 169869 532010 532014 533606 940715 111577 361745 107964 222633 
554456 541196 302153 188115

(when an inner and outer share an edge point you get the same problem).

John





More information about the talk mailing list