[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