[Tagging] Bridges and layers
David Earl
david at frankieandshadow.com
Mon Jul 26 11:44:09 BST 2010
On 26/07/2010 10:58, Richard Mann wrote:
> One of the things Dave Earl mentioned in his talk about rendering was
> the gaps-in-casings you sometimes get at bridges.
>
> What I've ended up doing is
> 1) rendering casings in layer (not underneath everything like Mapnik)
That's what I did also in my renderer.
Talking to Steve Chilton afterwards, I was surprised to learn that
actually Mapnik is not layer-aware at all, which is where some of the
problems arise (bridges over bridges being a particular case which I now
understand why solving is so difficult).
> 2) putting in a flag to identify ways that join ways of different
> layer, with a view to suppressing end caps
If you do things in the right order (circular) end caps get obliterated
by the higher layer in a painting model. (Square and butt line cpas
cause all sorts of other problems if treated naively, while circular
line caps - and joins - largely just work).
I came to the conclusion that for several reasons including your case 2,
and also the problem of some ways penetrating others when not desired,
the best way to handle all meeting ways might be to render the meeting
separately from the ways - painting a "star" of meeting roads on top of
the basic renderings. Needs a lot more calculation, and there are places
it would still break down because of very close proximity features
(which causes problems in other ways too), but I think it would improve
the general case a lot.
The particular problems I didn't attempt to solve, particularly related
to the need to exaggerate road widths more on a printed map, are that
bridges don't necessarily span the entire exaggerated width of the
underlying road (river, whatever), leaving unpleasant gaps, merges etc
in the image.
That requires at minimum knowledge of what the underlying feature is,
which I guess you could determine by computation, but even then the
geometry is very complicated and can have knock on effects to lengthen a
bridge artifically (just as widening a road can, as I mentioned in my talk).
David
More information about the Tagging
mailing list