Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

enable parallel/offset lines using chainable coordinate transformations #927

Closed
springmeyer opened this issue Oct 22, 2011 · 10 comments
Closed
Assignees
Milestone

Comments

@springmeyer
Copy link
Member

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.

@ghost ghost assigned springmeyer Oct 22, 2011
springmeyer pushed a commit that referenced this issue Oct 22, 2011
…ne verticies - closes #180 - next task of exposing functionality refs #927
@xificurk
Copy link

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

@springmeyer
Copy link
Member Author

@xificurk - you should check out the code I added in cad0c60 - it has some improvements over previous iterations as far as avoiding spikes.

kkaefer pushed a commit to kkaefer/mapnik that referenced this issue Feb 16, 2012
…ne verticies - closes mapnik#180 - next task of exposing functionality refs mapnik#927
@springmeyer
Copy link
Member Author

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.

@mirecta
Copy link

mirecta commented Jun 18, 2012

Hi all this offseting line doesn't work as we can see
http://i48.tinypic.com/33pen1s.png
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

@xificurk
Copy link

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.

@mirecta
Copy link

mirecta commented Jun 18, 2012

yes i know but i try implement algo from postgis 2.0 into mapnik
http://postgis.refractions.net/documentation/manual-2.0/ST_OffsetCurve.html

@springmeyer
Copy link
Member Author

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.

@springmeyer
Copy link
Member Author

note: offsetting algo was radically improved, see #1269

@PetrDlouhy
Copy link
Contributor

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?

@springmeyer
Copy link
Member Author

I think there may already be a ticket for enabling offset on more symbolizes. If you can't find one then sure, create one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants