<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
0) <br>
The classes named below can refer either to MaestroAPI classes or Xml
tag names.<br>
The code given is for the MaestroAPI.<br>
There is no equivalent for the official API, and you will have to do
this using Xml<br>
manipulation.<br>
<br>
Search for a file called LayerDefinition-1.2.0.xsd for a description of
such a document.<br>
<br>
1) <br>
Xsd: <br>
C:\Program
Files\MapGuideOpenSource2.0\Server\Schema\LayerDefinition-1.2.0.xsd<br>
MaestroAPI:<br>
<a class="moz-txt-link-freetext" href="http://trac.osgeo.org/mapguide/wiki/maestro/MaestroAPI">http://trac.osgeo.org/mapguide/wiki/maestro/MaestroAPI</a><br>
<br>
2)<br>
I have shown that in the sample code.<br>
<br>
3)<br>
I have included code?<br>
<br>
<pre class="moz-signature" cols="72">Regards, Kenneth Skovhede, GEOGRAF A/S
</pre>
<br>
<br>
padmini godavarthi skrev:
<blockquote cite="mid:1230721270844-2095759.post@n2.nabble.com"
 type="cite">
  <pre wrap="">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:
  </pre>
  <blockquote type="cite">
    <pre wrap="">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\" &gt; 100";
//TODO: Set style and other properties

LayerDefinition ldef; //&lt;-- 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:
    </pre>
    <blockquote type="cite">
      <pre wrap="">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:
  
      </pre>
      <blockquote type="cite">
        <pre wrap="">Hi,

Many thanks for you Jackie
it works good

Regards

Karam


Jackie Ng wrote:
    
        </pre>
        <blockquote type="cite">
          <pre wrap="">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 &lt; 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:
      
          </pre>
          <blockquote type="cite">
            <pre wrap="">Hi everybody

How can I use the (layerdefinitionfactory.php) API functions witn .NET
?

thanks

Karam

        
            </pre>
          </blockquote>
          <pre wrap="">      
          </pre>
        </blockquote>
        <pre wrap="">    
        </pre>
      </blockquote>
      <pre wrap="">  
      </pre>
    </blockquote>
    <pre wrap="">_______________________________________________
mapguide-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:mapguide-users@lists.osgeo.org">mapguide-users@lists.osgeo.org</a>
<a class="moz-txt-link-freetext" href="http://lists.osgeo.org/mailman/listinfo/mapguide-users">http://lists.osgeo.org/mailman/listinfo/mapguide-users</a>


    </pre>
  </blockquote>
  <pre wrap=""><!---->
  </pre>
</blockquote>
</body>
</html>