[mapserver-users] Scale Bar Size Issue

Steve Lime Steve.Lime at dnr.state.mn.us
Tue Sep 29 11:11:09 EDT 2009


I thought about this more last night and settled on using a negative width to imply bar width
and a positive width to imply image width. Wouldn't affect the mapfile defs or anything like that
and a relatively easy addition on my part.

Steve

>>> On 9/29/2009 at 10:06 AM, in message
<1254236781386-3736841.post at n2.nabble.com>, PatB <pbarnhart at gis-services.com>
wrote:

> Gotcha - I meant that the image size I'd need to calculate would change
> because of the text etc.
> 
> I don't think changing the ms source code is an option for me, I'd prefer to
> go that route but don't have direct access to the produciton server.  If,
> however, you come up with a patch please pass it along, maybe I can talk my
> boss into letting me use it :)  It could also help someone else down the
> line, I can't be the only person that wants control of the interval size.
> 
> So anyway, I know the output dpi and I know I want 1/2" intervals for
> english and 1 cm for metric so I may end up just making a one size fits all
> graphic and sticking text underneath it.  Sucks though.
> 
> Thanks for your help,
> Pat
> 
> 
> Steve Lime wrote:
>> 
>> No, the image size is held constant and changes in the bar itself are made
>> to accommodate for
>> that restriction, at least that what we try to do. We know how much space
>> we have for the 
>> bar and the various text elements and work backwards from that. You say,
>> if the bar is
>> so big the text is this, does it fit? If not then make the bar a touch
>> shorter and re-compute 
>> things. Again, that  was done to  facilitate websites where just image
>> elements change and 
>> not printing.
>> 
>> I suppose one could hack the scalebar code to interpret the size to mean
>> "the bar" and not
>> the image, or at least have that as an option. I'll take a peek and get
>> back to you (or feel free
>> if you're so inclined). Probably easier to hack the source than make your
>> own.
>> 
>> Steve
>> 
>>>>> On 9/28/2009 at 2:12 PM, in message
>>>>> <1254165139306-3731312.post at n2.nabble.com>,
>> PatB <pbarnhart at gis-services.com> wrote:
>> 
>>> The image size will vary because of the length of the last callout under
>>> the
>>> bar, right?  100000 km will stick out past the bar farther than 5000 m. 
>>> I
>>> guess I could eyeball how much based on the font size, number of
>>> characters
>>> and ouput dpi but, well, bleach.  Is there a better way?  Plan B is to
>>> make
>>> my own scalebar but I'm not wild about that idea either.
>>> 
>>> Engineers all over the world just cringed when I wrote 'eyeball'.
>>> 
>>> Thanks.
>>> 
>>> 
>>> Steve Lime wrote:
>>>> 
>>>> When you set a size for a scalebar the width you provide is what you get
>>>> back. The height is for
>>>> the bar only. This was done so that scalebar images could retain the
>>>> same
>>>> image size and you 
>>>> could just swap img.src in a web app (assuming you're not mucking with
>>>> font sizes). You'll likely
>>>> have to experiment a bit with the width then to get it roughly the right
>>>> size (e.g ask for 750).
>>>> 
>>>> Steve
>>>> 
>>>>>>> On 9/24/2009 at 11:04 PM, in message
>>>> <1253851467382-3710334.post at n2.nabble.com>, PatB
>>>> <pbarnhart at gis-services.com>
>>>> wrote:
>>>> 
>>>>> Hi,
>>>>> 
>>>>> I'm using the code below to request a scalebar from mapserver.  My
>>>>> understanding of the documentation is that the size parameter sets the
>>>>> size
>>>>> of the scalebar itself not including the text, border, etc but that's
>>>>> not
>>>>> what I'm getting back.  The url below returns an image that is 600 x
>>>>> 153
>>>>> (I'm requesting 600 x 75) when it should be more like 750 x 153 to
>>>>> account
>>>>> for the surrounding stuff.  The height works as expected and the
>>>>> units/distances look right, the width of the scalebar itself is the
>>>>> issue.
>>>>> 
>>>>> This is for a print app, the output res is 300dpi so by setting the
>>>>> width
>>>>> to
>>>>> 600 I was hoping to print a 2 inch wide scale bar with four 1/2"
>>>>> intervals. 
>>>>> This seems like it would be a common task but I've been digging though
>>>>> the
>>>>> forum for hours without success.  A little help?  I'm using MS version
>>>>> 5.4.2
>>>>> 
>>>>> mapserv.exe?MAP=C:/ms4w/tmp/maps/mp.map&mode=scalebar&mapext=-8798233+4184184+-8
>>>>> 
>>> 
> 793280+4188502&mapsize=11700+10200&map.scalebar=units+feet+size+600+75+interval
> 
>>> 
>>>>> s+4+label+size+40+end
>>>>> 
>>>>> and my map file goes something like:
>>>>> 
>>>>> MAP
>>>>> ...
>>>>> UNITS meters
>>>>> ...
>>>>> SCALEBAR
>>>>>   STYLE 0
>>>>>   IMAGECOLOR 255 255 255
>>>>>   LABEL
>>>>>     TYPE TRUETYPE
>>>>>     FONT "tahoma"
>>>>>     SIZE 40
>>>>>     COLOR 0 114 255
>>>>>   END
>>>>>   SIZE 600 75
>>>>>   COLOR 235 235 235
>>>>>   BACKGROUNDCOLOR 0 114 255
>>>>>   OUTLINECOLOR 0 0 0
>>>>>   UNITS meters
>>>>>   INTERVALS 4
>>>>>   STATUS on
>>>>>   TRANSPARENT on
>>>>> END
>>>>> ...
>>>>> 
>>>>> Thanks - and yes, the map size is friggin huge.
>>>> 
>>>> _______________________________________________
>>>> mapserver-users mailing list
>>>> mapserver-users at lists.osgeo.org 
>>>> http://lists.osgeo.org/mailman/listinfo/mapserver-users 
>>>> 
>>>> 
>> 
>> _______________________________________________
>> mapserver-users mailing list
>> mapserver-users at lists.osgeo.org 
>> http://lists.osgeo.org/mailman/listinfo/mapserver-users 
>> 
>> 


More information about the mapserver-users mailing list