[mapguide-users] layerdefinitionfactory with .NET

padmini godavarthi godavarthi.padmini at gmail.com
Tue Dec 30 06:16:20 EST 2008


Hi,
i want to do thematic mapping in .net .for that i suppose to use
LayerDefinitionFctory .
how to use it in .net?

can u send me the code in .net


Thanks and Regards,
Padmini


m.karam wrote:
> 
> Hi,
> 
> Many thanks for you Jackie
> it works good
> 
> Regards
> 
> Karam
> 
> 
> Jackie Ng wrote:
>> 
>> 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://n2.nabble.com/layerdefinitionfactory-with-.NET-tp1809201p2092027.html
Sent from the MapGuide Users mailing list archive at Nabble.com.



More information about the mapguide-users mailing list