[OSM-talk] Funny Mapnik rendering of lakes
Darryl Shpak
darryl at shpak.ca
Mon Aug 13 23:24:00 BST 2007
Jon Burgess wrote:
> On Mon, 2007-08-13 at 22:32 +0100, Dermot McNally wrote:
>
>> On 13/08/07, Jon Burgess <jburgess777 at googlemail.com> wrote:
>>
>>
>>> I found a minor problem with the data which meant the way overlapped
>>> itself at 2 places. The points of overlap were very tiny but enough to
>>> confuse the osm2pgsql code and result in the bad rendering. I have
>>> attached 2 screenshots showing the problem data in JOSM.
>>>
>> That makes sense. This lake was traced with the excellent lakewalker.
>> I usually do a manual check of the banks to look for stuff like this,
>> but I can't actually recall doing it in this instance. I'll know what
>> to check next time I see this in Mapnik.
>>
>
> It would be tricky to spot this manually. Maybe we should see if we can
> prevent lakewalker from generating overlapping segments.
>
>
That's definitely on the to-do list (maintained in a very high-tech
fashion: a big block of comments near the beginning of the script). The
second case here (three segments in a triangle) is caused by the way
lakewalker very methodically places nodes aligned to a fixed grid, and I
think I know how to fix it (nudge every node very slightly to the right
during the trace, so that if the path passes through the same point
twice from different directions, the nodes are slightly separated).
The first case, however (crossed segments) isn't something I've seen
before, and off the top of my head, I can't think of an easy way to fix
this. I think the JOSM Validator plugin will catch both types of problem
when you try to upload, though.
Many of these small-scale anomalies can be eliminated by turning on the
vertex reduction feature (--vr), which prevents nodes from being created
extremely close together (minimum allowable distance specified by
--vr-epsilon) . However, this also eliminates small-scale features, so
it may not be ideal. I never use it :)
- Darryl
More information about the talk
mailing list