We have a new class of coordinate transforms that support fairly robust offsetting of lines (#180). But, I'm not comfortable exposing this (adding support for the symbolizer properties to trigger it) until I figure out the best way to make this transform be combinable with other transforms. The idea here is to reduce code duplication but also to sketch out a decent framework for being able to chain more/future operations. E.g. you should be able to both smooth and offset lines. Doable, just needs some serious focus.
add a new, experimental coord_transform impl to support offsetting li…
…ne verticies - closes #180 - next task of exposing functionality refs #927
I've planned to take a look at the offset part of the transformation, because after testing I'm not really satisfied with the results. Imho there is still one major problem - short segments with large offset (relatively to the length of the segment) create loops, see http://img803.imageshack.us/img803/7703/riveroffset.png
@xificurk - you should check out the code I added in cad0c60 - it has some improvements over previous iterations as far as avoiding spikes.
This is now done in a475b6e. The line symbolizer supports an 'offset' parameter that can be positive or negative. In the future this could be exposed for the line pattern symbolizer as well, if desired.
Hi all this offseting line doesn't work as we can see
Black: original linestring
Red: offset line made by mapnik
Blue: offset line made by postgis 2 select (ST_OffsetCurve)
i try to discover where is the problem
mirecta: The problem occurs when the offset is significantly larger than shortest segments of the line as I wrote above. But afaik there is no trivial fix.
yes i know but i try implement algo from postgis 2.0 into mapnik
Great there is interest in improving the algorithm. The original need (now several years back) was only high zoom levels, so the spiking (more common as you zoom out) was not a big issue, but I agree it would be nice to completely avoid it.
note: offsetting algo was radically improved, see #1269
Hi. I use offset for LinePatternSymbolizer in my Prague bycicle map (mapa.prahounakole.cz). Would it be possible to enable this feature also for that? Should I open a new ticket for that?
I think there may already be a ticket for enabling offset on more symbolizes. If you can't find one then sure, create one.