[mapserver-dev] Labeling Highway Shields Idea
Stephen Woodbridge
woodbri at swoodbridge.com
Fri Jun 5 14:11:02 EDT 2009
Thomas,
I created a ticket for this:
http://trac.osgeo.org/mapserver/ticket/3044
-Steve W
thomas bonfort wrote:
> Steve,
>
> I like the idea, and think that the style bloc should also be used to
> render the label background in the simple case (thus deprecating the
> need for backgroundcolor, backgroundshadowcolor, offsets, etc...). The
> base object passed to the style rendering funbction would be the
> shapeboj representing the label's bounding box. This rectanlge can
> either be rendered normally in the case of a label background, or by
> using the GEOMTRANSFORM centroid can be used to render shields.
>
> regards,
>
> thomas
>
> On May 21, 2009, at 23:50 , Stephen Woodbridge wrote:
>
>> Hi all,
>>
>> Currently, unless I'm out of date, if you want to place highway
>> shields that are symbols as part of a label you have to use an
>> annotation layer to place the shield as a symbol(s) and the label over
>> top of that with the number.
>>
>> So this requires, two passes over the data, one to render the highways
>> and a second pass over the data to place the shields. It also requires
>> defining and maintaining two layers in place of one.
>>
>> A proposal for an alternate way:
>>
>> One way to do this would be to allow STYLE block(s) to be placed in
>> the LABEL block and these would use the base label point and be
>> rendered before the label text and only if the label test is rendered.
>> I say base label point, because you would still want to be able to use
>> OFFSET x y to align the label text with the shield symbols. I suppose
>> you could allow OFFSET x y in the STYLE block to allow separate
>> positioning of the symbols and to get multiple symbols to align
>> correctly with one another.
>>
>> The following is an example of how this might look. Sorry, I copied it
>> from the cpp input file but it should be easy to understand.
>> _label(font,size,color) is a macro simplify the files. If USE_SHIELDS
>> is defined it would use the proposal above and render the interstate
>> shields which is actually three symbols representing the red, white
>> and blue parts of the shield where each is a vector symbol or you
>> could have one STYLE block that uses an image symbol for the shield.
>> If USE_SHIELDS is not defined then you would get a OSM style highway
>> label in a box, like "[I-290]".
>>
>> Thoughts on this?
>>
>> If people think this would be a good enhancement, I would be happy to
>> write up a ticket for it.
>>
>> Thanks,
>> -Steve
>>
>> CLASS ## Interstate
>> EXPRESSION "1"
>> STYLE
>> WIDTH _motorway_width
>> OUTLINEWIDTH 1
>> OUTLINECOLOR _motorway_ol_clr
>> MINWIDTH _motorway_minwidth
>> MAXWIDTH _motorway_maxwidth
>> END
>> STYLE
>> WIDTH _motorway_width
>> COLOR _motorway_clr
>> MINWIDTH _motorway_minwidth
>> MAXWIDTH _motorway_maxwidth
>> END
>> #ifdef USE_SHIELDS
>> LABEL
>> MAXSCALEDENOM 3000000
>> STYLE
>> SYMBOL "interstate-red"
>> COLOR _red_clr
>> END
>> STYLE
>> SYMBOL "interstate-blue"
>> COLOR _blue_clr
>> END
>> STYLE
>> SYMBOL "interstate-white"
>> COLOR _white_clr
>> END
>> _label("arial-bold",10,_white_clr)
>> PRIORITY 1
>> MINSIZE 8
>> MAXSIZE 8
>> MINDISTANCE 150
>> END
>> #else
>> LABEL
>> MAXSCALEDENOM 3000000
>> _label("arial-bold",10,_white_clr)
>> PRIORITY 1
>> MINSIZE 8
>> MAXSIZE 8
>> MINDISTANCE 150
>> MAXLENGTH 6
>> BACKGROUNDCOLOR _motorway_lbl_bg_clr
>> BACKGROUNDSHADOWCOLOR _motorway_lbl_shadow_clr
>> END
>> #endif
>> END
>> _______________________________________________
>> mapserver-dev mailing list
>> mapserver-dev at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/mapserver-dev
>
More information about the mapserver-dev
mailing list