[mapserver-users] How to display vector symbols (direction and magnitude) in MapServer?

Havard Tveite havard.tveite at umb.no
Tue Aug 19 04:06:29 EDT 2008


I don't think ANGLE can be used in your case (if you do not
use scripting to calculate the ANGLEs yourself for each
generated map).

Is there a need for a new TAG - for instance with the name
"ORIENTATION", that could be used to specify compass
directions (0=north, 90=east, 180=south, 270=west) for
point symbols?

Håvard Tveite

John Maurer wrote:
> Thanks for the suggestion, Daniel! I was unaware of the ANGLE parameter
> in MapServer 5.0. One remaining concern I have, though, is how the angle
> will be interpreted by MapServer? Will -90 degrees always point to the
> South Pole regardless of the map projection I'm using (e.g. a polar
> stereo map centered on the South Pole), or will it always just point to
> the bottom of the map image regardless of the projection? i.e. Does
> MapServer interpret the degrees spatially or just in terms of the image?
> Unfortunately, if the latter is the case (which I suspect it probably
> is) it will not solve my problem. Do you know? Thanks again!
> Cheers,
> John Maurer
> 
> Daniel Morissette wrote:
>> John Maurer wrote:
>>> Dear MapServer Users,
>>> Does anybody have experience displaying vectors in MapServer? By
>>> "vectors", I don't mean the usual vector vs. raster difference. What
>>> I mean is displaying data like wind vectors, which are point
>>> locations that have both a direction (degrees) and magnitude (e.g.
>>> meters per second). Usually these are displayed as arrows, which each
>>> point in a certain direction and whose tails vary in length depending
>>> on the magnitude each measurement. Is this possible in MapServer?
>>> Thanks for any suggestions!
>> You could bind the symbol size and angle to an attribute in your layer
>> definition.
>>
>> If you can precompute the size in pixels based on the wind speed and
>> store that to an 'arrowsize' attribute then you could use a layer
>> defn's like this:
>>
>> LAYER
>>   TYPE POINT
>>   ...
>>   CLASS
>>     SYMBOL 'arrow'
>>     ANGLE [direction]
>>     SIZE [arrowsize]
>>     COLOR 0 0 0
>>   END
>> END
>>
>>
>> If you can't precompute the arrow size in pixels, then you could use
>> classes based on the wind speed attribute:
>>
>> LAYER
>>   TYPE POINT
>>   ...
>>   CLASSITEM 'windspeed'
>>   CLASS
>>     EXPRESSION ([windspeed] < 5)
>>     SYMBOL 'arrow'
>>     ANGLE [direction]
>>     SIZE 10
>>     COLOR 0 0 0
>>   END
>>   CLASS
>>     EXPRESSION ([windspeed] < 25)
>>     SYMBOL 'arrow'
>>     ANGLE [direction]
>>     SIZE 15
>>     COLOR 0 0 0
>>   END
>>   CLASS
>>     EXPRESSION ([windspeed] < 100)
>>     SYMBOL 'arrow'
>>     ANGLE [direction]
>>     SIZE 20
>>     COLOR 0 0 0
>>   END
>>   CLASS
>>     # No expression ... catch all for windspeed > 100
>>     SYMBOL 'arrow'
>>     ANGLE [direction]
>>     SIZE 25
>>     COLOR 0 0 0
>>   END
>> END
>>
>>
>> Daniel
> 
> --
> John Maurer
> Web/Database Applications Engineer
> National Snow and Ice Data Center (NSIDC)
> University of Colorado at Boulder
> http://cires.colorado.edu/~maurerj
> +1-303-586-1677
> ------------------------------------
> "Without geography, you're nowhere!"
> 
> 
> _______________________________________________
> mapserver-users mailing list
> mapserver-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapserver-users
> 

-- 
Håvard Tveite
Department of Mathematical Sciences and Technology, UMB
Drøbakveien 31, POBox 5003, N-1432 Ås, NORWAY
Phone: +47 64965483 Fax: +47 64965401 http://www.umb.no/imt/


More information about the mapserver-users mailing list