[mapguide-users] layerdefinitionfactory with .NET
padmini godavarthi
godavarthi.padmini at gmail.com
Wed Dec 31 06:01:10 EST 2008
Hi,
Thanks for u r reply.But i didnt find PointRuleType anywhere?
1) where can i find this?
2) And how to apply properties to the layer?
3) can u send me the code.
so that it will be very helpful.
Thanks and Regards,
Padmini
Kenneth Skovhede, GEOGRAF A/S wrote:
>
> I don't know where or what the LayerDefinitionFactory is, but to add
> thematic rules
> you simply add a "PointRuleType", "LineRuleType" or "AreaRuleType" to the
> "PointTypeStyleType", "LineTypeStyleType" or "AreaTypeStyleType"
> collection of the
> desired scalerange.
>
> eg:
> PointRuleType prt = new PointRuleType();
> prt.Filter = "\"ID\" > 100";
> //TODO: Set style and other properties
>
> LayerDefinition ldef; //<-- Assign this
> VectorLayerDefintionType vldef = ldef.Item as VectorLayerDefinitionType;
> //If you have more than just points, you must itterate the "Items" to
> find the right one
> PointTypeStyleType pst = vldef.VectorScaleRange[0].Items[0] as
> PointTypeStyleType;
> pst.PointRule.Add(prt);
>
> Regards, Kenneth Skovhede, GEOGRAF A/S
>
>
>
> padmini godavarthi skrev:
>> 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
>>>>>
>>>>>
>>>>
>>>
>>
>>
>
> _______________________________________________
> mapguide-users mailing list
> mapguide-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapguide-users
>
>
--
View this message in context: http://n2.nabble.com/layerdefinitionfactory-with-.NET-tp1809201p2095759.html
Sent from the MapGuide Users mailing list archive at Nabble.com.
More information about the mapguide-users
mailing list