[mapserver-users] dynamic layer classification

Brent Fraser bfraser at geoanalytic.com
Fri Aug 26 14:29:16 EDT 2011


Hopefully your  favorite scripting language is Python (and not PHP or 
Perl) as the support is much better.  I'm no expert in Mapscript, but in 
general your script would do something like:

1. Load the 'template' map file (containing most of the map/layer/class 
definitions)
2. Get the Layer object of interest, and iterate thru the class objects 
assigning the desired symbology
3. Generate and send the image to the browser

There is reference doc on the Mapserver site for Mapscript but I didn't 
see any tutorial.  GeoMoose has some extensive PHP Mapscript you might 
be able to use as a guide.

Best Regards,
Brent Fraser


On 8/26/2011 11:50 AM, Mr. Puneet Kishor wrote:
> On Aug 26, 2011, at 12:39 PM, Brent Fraser wrote:
>
>> Puneet,
>>
>>   I think currently the short answer is Mapscript.
>>
>>   I had a similar need last year (http://lists.osgeo.org/pipermail/mapserver-users/2010-March/065050.html) where I needed to have the symbology stored in the database and the classes varied over  time (users created new class defs in the database via a web page).
>>
>>   Steve Lime suggested an enahancement where classes were defined by a SLD file or url:
>>
>> LAYER
>>   NAME 'extreme-symbology'
>>   DATA ...
>>   CONNECTION ...
>>   SLD 'some flle' or 'some url'
>>   ...
>> END
>>
>> which is an elegant solution, but currently not implemented...
>
> Yes, that would be a very nice solution, precisely the kind of thing I am looking for. In fact, even better would be
>
> LAYER
>   ..
>   SLD 'some expression'
>
> where 'some expression' could be stored in a file, or retrieve via a URL, or from a db query.
>
> But, until that comes along, I could and will use MapScript. I compiled MS 6.0.1 yesterday, and discovered, much to my delight, that MapScript in my favorite programming language (the one that begins with P) is alive and doing well.
>
> So, how would I go about implementing this in MapScript? I would have to create the layer definition on the fly, no? Any pointers?
>
>
>
>> Best Regards,
>> Brent Fraser
>>
>>
>> On 8/26/2011 8:35 AM, Mr. Puneet Kishor wrote:
>>> hola,
>>>
>>> I need some guidance on this (and my MapServer foo is severely rusted). My immediate need is to color a polygon layer (held in PostGIS) based on an attribute in a separate table. The number of CLASSes is considerable, more than 80 or so. This leads to a longer term need --
>>>
>>> The coloring of these polys is a crucial and universal need in my field of work, and it horrendously complicated determining the correct color, and the calculations for the appropriate color keep on changing from time to time. In other words, many different applications need this ability to classify polys based on certain attributes. So, I am creating a web app that does nothing but tell what color to use -- you give it a set of attributes, and the web app replies with the color. It would be a RESTful app, sending the color information back as JSON. How could I use this information with MapServer?
>>>
>>> In an ideal scenario, MapServer would query the data source, then, for each class in the layer, it would send a query to this color app, and the color app would tell MapServer what color to use to render the poly. The same app would be used by other apps, be they MapServer, OL, Polymaps, or even non-mapping apps such as R, etc.
>>>
>>> Suggestions on how to proceed?
>>>
>>> --
>>> Puneet Kishor
>>> _______________________________________________
>>> 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