Hi David,

Great, thanks very much for contributing to Mapnik! I applied your
patch against latest trunk ( r1340 ) and everything builds/runs fine.
I'm yet to try new parameters, though. I might apply your changes to
the trunk so we can have a play.

Regards,
Artem

PS. Please, consider subscribing to mapnik mailing lists


2009/10/18 David Eastcott <[email protected]>:
> I have attached some changes that I thought would enhance mapnik.  I've
> generated the diff set against trunk version 1331 and are attached.  I did
> not attempt to modify the other interface or subsystems (python or cario) to
> support the new/changed parameters.  If you have any questions, please do
> not hesitate to contact me.
>
> Best regards,
> Dave
>
> Change log:
>
> 1.  Modified Text Symbolizer
>
>   a) corrected line fragment centering (for 2nd and subsequent lines, when
> line breaks occur).
>
>   b) adjusted vertical alignment calculation so that:
>       i)      middle -> has the center of the text line(s) at the point
> origin
>       ii)     bottom -> has the text line(s) below the point origin
>       iii)    top -> has the text line(s) above the point origin
>
>   c) added new text_symbolizer attribute: 'wrap_before', value range:
> true/false, default == false
>
>      allows line breaks at first wrap_char before wrap_width as an
> alternative to the original
>      which was to create the line break at the first wrap_char after
> wrap_width
>
>   d) added new text_symbolizer attribute: 'horizontal_alignment', value
> range: left/middle/right, default == middle
>       i)      left -> has all text line(s) to left of the point origin
>       ii)     middle -> has all text line(s) centered on the the point
> origin
>       iii)    right -> has all text line(s) to the right of the point origin
>
>       NOTE:   dx, dy position adjustments are applied after alignments and
> before Justify.
>
>   e) added new text_symbolizer attribute: 'justify_alignment', value range:
> left/middle/right, default == middle
>       i)      left -> after alignments, has all text line(s) are left
> justified (left to right reading)
>       ii)     middle -> after alignments, has all text line(s) center
> justified
>       iii)    right -> after alignments, has all text line(s) right
> justified (right to left reading)
>
>   f) added new text_symbolizer attribute:  'opacity', value range: 0.0 thru
> 1.0; 1.0 == fully opaque
>
>   g) modified positioning to compensate for both line_spacing and
> character_spacing, to ensure proper
>      centering of the text envelope.  Also ensure that centering occurs
> correctly even if no wrapping
>      occurs.  Line spacing is uniform and consistent and compensates for
> errors between text_size and
>      the actual size (ci.height is inconsistent, depending on case and
> character); fixes issue with
>      multi-line text where some lines have a slight gap and others are
> compressed together.
>
>
> 2.  Modified shield_symbolizer
>
>   a) added the attributes:
>       i)      allow_overlap
>       ii)     vertical_alignment
>       iii)    horizontal_alignment
>       iv)     justify_alignment
>       v)      wrap_width
>       vi)     wrap_character
>       vii)    wrap_before
>       viii)   text_convert
>       ix)     line_spacing
>       x)      character_spacing
>       xi)     opacity
>
>   b)  added new shield_symbolizer attribute: 'unlock_image', value range:
> true/false, default == false
>       i)  false == image and text placement behaviour same as before
>       ii) true == image placement independant of text, image is always
> centered at geometry point, text placed per attributes,
>                   dx/dy only affect text.
>
>       Allows user to create point markers with text, but both the text and
> image rendering collision detection are done
>       as a pair (they come and go together - solves problem if using
> point_symbolizer and text_symbolizers where one or the
>       other are omitted due to overlaps, but not both)
>
>   c)  extended choices for the attribute 'placement' to include vertex;
> effect is limited to the shield_symbolizer
>
>       Allows an attempted placement at every vertex available, gives
> additional shield placement volume when using line geometry
>
>   d)  ensured that the text placement was not updating the detector unless a
> shield image was actually placed.
>
>   e)  added new shield_symbolizer attribute: 'no_text', value range:
> true/false, default = false
>
>       When set true, the text for the feature is ignored ('space'
> subsituted) so that pure graphic symbols can be used
>       and no text is rendered over top of them.
>
>
> _______________________________________________
> Mapnik-devel mailing list
> [email protected]
> https://lists.berlios.de/mailman/listinfo/mapnik-devel
>
>
_______________________________________________
Mapnik-devel mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/mapnik-devel

Reply via email to