Hi Brent,

Thanks for the hand-holding. I got the solution for this first part of the 
challenge using MapScript; no Mapfile required at all. I will write up a more 
generalized article on this for the docs/wiki.


On Aug 28, 2011, at 10:19 AM, Brent Fraser wrote:

> Puneet,
> 
>  If you don't care about mapserver generating a legend graphic, you could use 
> mapserver CGI's ability (no scripting required) to do attribute binding (get 
> values from a feature's attribute values).  I've used a single class def of:
> 
>        CLASS
>            STYLE  # Line, Poly and Point outline
>                SYMBOL       [sSymbol]
>                OUTLINECOLOR [sOutlineColor]
>                COLOR        [sColor]
>                SIZE         [sSize]
>            END
>            TEXT ([Label])
>            LABEL
>                ANGLE AUTO
>                POSITION UR
>                COLOR [lColor]
>                OUTLINECOLOR [lOutlineColor]
>                TYPE truetype
>                FONT 'Arial'
>                SIZE [lSize]
>            END
>        END
> 
> where the data/connection accessed a view joining the feature table to a 
> class table where the styling values were defined.  And you need 3 layer 
> defs, one for points, lines and polygons.   But using this technique, there 
> is no way to get a legend graphic show all the classes.
> 
>  So in your PHP code you would need to do a  generic database query to get a 
> set of classes, then for each row create a class object and add it to the 
> layer object.  Then have mapscript process the features and render a map 
> image by doing a draw() (and a legend graphic by doing a drawLegend()).  Or, 
> as others have suggested,  you could pass an SLD to mapserver via WMS and 
> request a legend graphic.
> 
> Best Regards,
> Brent Fraser
> 
> 
> On 8/27/2011 5:02 PM, Mr. Puneet Kishor wrote:
>> I have a layer classification issue. I want to do something along the lines 
>> of (semi-pseudocode ahead) --
>> 
>>     $layerObj->{data} = 'the_geom FROM (SELECT gid, the_geom, class_name, 
>> class_color FROM table) t USING UNIQUE gid';
>>     $layerObj->{classitem} = 'class_name';
>> 
>>     while (my $row in $layerObj->{data}) {
>>         create class with 'name = class_name', 'expression = class_name', 
>> 'color = class_color'
>>     }
>> 
>> How do I iterate over the rows retrieved from the table in order to create 
>> classes? I don't see any obvious reference to a db result 
>> set._______________________________________________
>> mapserver-users mailing list
>> [email protected]
>> http://lists.osgeo.org/mailman/listinfo/mapserver-users
>> 
> 

_______________________________________________
mapserver-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapserver-users

Reply via email to