[mapguide-users] layerdefinitionfactory with .NET

Jackie Ng jackie.ng at aecsystems.com.au
Tue Mar 6 01:52:08 EST 2007


Hi there,

There is no .NET equivalent to LayerDefintionFactory. You'll have to port it
over to .net.

layerdefinitionfactory.php simply takes a bunch of xml templates in the
"viewerfiles" directory of your web extensions install folder and fills in
the blanks with the parameters you provide.

example of CreateAreaRule() in .net:

class LayerDefinitionFactory
{
    ...

    public static string CreateAreaRule(string legendLabel, string
filterText, string foreGroudColor)
    {
        StreamReader reader = new StreamReader("path/to/arearule.templ");
        string areaRuleXml = reader.ReadToEnd();
        string [] values = new string[] { legendLabel, filterText,
foreGroundColor };
        areaRuleXml = Substitute(areaRuleXml, values);
        return areaRuleXml;
    }
    
    ...
    
    static String Substitute(String templ, String[] vals)
    {
        StringBuilder res = new StringBuilder();
        int index = 0, val = 0;
        bool found;
        do
        {
            found = false;
            int i = templ.IndexOf('%', index);
            if(i != -1)
            {
                found = true;
                res.Append(templ.Substring(index, i - index));
                if(i < templ.Length - 1)
                {
                    if(templ[i+1] == '%')
                        res.Append('%');
                    else if(templ[i+1] == 's')
                        res.Append(vals[val ++]);
                    else
                        res.Append('@');    //add a character illegal in
jscript so we know the template was incorrect
                    index = i + 2;
                }
            }
        } while(found);
        res.Append(templ.Substring(index));
        return res.ToString();
    }
}


Other CreateXXX functions are variations on the above example.

Regards,

- Jackie


m.karam wrote:
> 
> Hi everybody
> 
> How can I use the (layerdefinitionfactory.php) API functions witn .NET ?
> 
> thanks
> 
> Karam
> 

-- 
View this message in context: http://www.nabble.com/layerdefinitionfactory-with-.NET-tf3347652s16610.html#a9326964
Sent from the MapGuide Users mailing list archive at Nabble.com.



More information about the mapguide-users mailing list