Question about OFFSET values

Blammo bob.basques at CI.STPAUL.MN.US
Sat Dec 10 07:41:58 PST 2005


Stephen,

I won't be able to get back to it again  till Monday.

There seems to be a few different possible approaches to this.

I'm not so sure it needs to be thought of as a bug as of yet.  It really 
is a specialized labelling need at the moment. Not surehow many other 
might need to do something like this, at least very often. Your 
suggestion below might be an alternative that could work too.  Although 
I like the finer control of the OFFSET parameter which is a pixel level 
vs a character spacing.

One problem I know I'm not going to avoid is when a curved street 
segment is encountered.  While these types of lines are in the minority 
of the dataset, they won't label correctly if I push the labels out to 
the ends of the line because all the positioning of the labels will be 
dependent on the central sub-line element of the multipart line 
segment.  This is why I've settled on the more central line labels.  The 
readability problem comes into play when the line segment being labelled 
is on the short side and the labels start to overlay the nearby labels 
of other line segments.

Since I have all these labels so close to each other, all the label 
interference parameters seem to do is turn everything off if they are 
used.  I'm still testing on this stuff though.  One thought would be the 
possible addition of a parameter to stop labelling a line below a 
certain (sub-) segment length, but there's a possibility that some 
segments might never get labelled no matter how far you zoom in.

To tell the truth, this is really related more to wrapping labelling 
around a curve, which I know has been mentioned in the past as a desired 
option.   Adding this capability in though seems to be a bit harder to 
accomplish than fiddling with the current settings to get something 
close, which I've done already, see below

LABEL
  ANGLE AUTO
  POSITION LL
  TEXT "[L_FROM]"
    OFFSET 10 5  ## it's interesting that these numbers don't need to be 
negative like I thought at first.
  ...
END
LABEL
  ANGLE AUTO
  POSITION UL
  TEXT "[L_TO]"
    OFFSET 10 5
  ...
END
LABEL
  ANGLE AUTO
  POSITION LR
  TEXT "[R_FROM]"
    OFFSET 10 5
  ...
END
LABEL
  ANGLE AUTO
  POSITION UR
  TEXT "[R_TO]"
    OFFSET 10 5
  ...
END

bobb

Stephen Woodbridge wrote:

> Hi Bob,
>
> Would you post what you have done so far? I have wanted to do 
> something like this for a long while.
>
> Have you, would you open a bug for an enhancement to mapserver to 
> better support this functionality?
>
> You might be able to get this to work with two layers by:
>
> LABEL
>   ANGLE AUTO
>   POSITION CC
>   TEXT "[L_FROM] [R_FROM]"
>   WRAP " "
>   ...
> END
>
> Then you can vary the number of spaces between the two fields based on 
> the line thickness and then use the OFFSETs to get them positioned on 
> the line.
>
> It would be nice if POSITION could take a percentage along the line 
> segment as the label point. So 0.0 would be the start of the line and 
> 1.0 would be the end of the line and the angle would be based on which 
> part of the polyline that the label point fell on.
>
> -Steve W.
>
> Bob Basques wrote:
>
>> All,
>>
>> Ok, I got my addressing range labels too llok pretty good using four 
>> Layers with seperate LABELITEMS and OFFSETS.
>>
>> Now I need to figure out a way, if possible, to scale the OFFSET 
>> values based on the overall length of the line.
>>
>> Can I use a value, line length, and a percentage of line length to 
>> use for the Offset values of the labels.  Right now the labels are 
>> situated for the most part near the center of the line.  I would like 
>> to puch the labels out to the ends of the lines for example, or pull 
>> them in closer for longer and shorter line segments.
>>
>> This is purely an exercise in readability right now, what I have 
>> seems to be working great for the customer.  Thanks for the pointers 
>> I got last week.
>>
>> bobb
>>
>
>



More information about the MapServer-users mailing list