you will need to port over this code to .NET C:\Program Files\MapGuideOpenSource2.0\WebServerExtensions\www\mapviewerphp\layerdefinitionfactory.php
it only supports a subset of the functionality available, to do anything more try reverse engineering existing layers z On Tue, Jan 6, 2009 at 5:54 PM, padmini godavarthi <[email protected]> wrote: > > Hi, > Thanks for u r reply. > but i didn't get u.how can i do with LayerDefinition-1.2.0.xsd ? > > > actually my requirement is that i want to load thematic maps dynamically(c# > code) based on some condition.. > 1)how can i achieve this? > can u plz expain me the procedure for how to doit. > > > Thanks and Regards, > Padmini. > > > Kenneth Skovhede, GEOGRAF A/S wrote: >> >> 0) >> The classes named below can refer either to MaestroAPI classes or Xml >> tag names. >> The code given is for the MaestroAPI. >> There is no equivalent for the official API, and you will have to do >> this using Xml >> manipulation. >> >> Search for a file called LayerDefinition-1.2.0.xsd for a description of >> such a document. >> >> 1) >> Xsd: >> C:\Program >> Files\MapGuideOpenSource2.0\Server\Schema\LayerDefinition-1.2.0.xsd >> MaestroAPI: >> http://trac.osgeo.org/mapguide/wiki/maestro/MaestroAPI >> >> 2) >> I have shown that in the sample code. >> >> 3) >> I have included code? >> >> Regards, Kenneth Skovhede, GEOGRAF A/S >> >> >> >> padmini godavarthi skrev: >>> 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 >>>> [email protected] >>>> http://lists.osgeo.org/mailman/listinfo/mapguide-users >>>> >>>> >>>> >>> >>> >> >> _______________________________________________ >> mapguide-users mailing list >> [email protected] >> http://lists.osgeo.org/mailman/listinfo/mapguide-users >> >> > > -- > View this message in context: > http://n2.nabble.com/layerdefinitionfactory-with-.NET-tp1809201p2116477.html > Sent from the MapGuide Users mailing list archive at Nabble.com. > > _______________________________________________ > mapguide-users mailing list > [email protected] > http://lists.osgeo.org/mailman/listinfo/mapguide-users > -- Zac Spitzer - http://zacster.blogspot.com +61 405 847 168 _______________________________________________ mapguide-users mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/mapguide-users
