[mapguide-users] Need help in layerdfefinition

lornen lor_nen at yahoo.com
Wed Dec 31 13:44:40 EST 2008


Hi thanks Jackie..
I've resolved this months ago, but thanks a lot anyway!!!
happy new year :)

--- On Fri, 12/26/08, Jackie Ng-2 (via Nabble) <ml-user+148234-933299064 at n2.nabble.com> wrote:
From: Jackie Ng-2 (via Nabble) <ml-user+148234-933299064 at n2.nabble.com>
Subject: Re: Need help in layerdfefinition
To: "lornen" <lor_nen at yahoo.com>
Date: Friday, December 26, 2008, 9:37 AM



Try capturing that xml output, save it to a temp file, and validate it against the LayerDefinition-1.0.0.xsd schema. Visual Studio (assuming you have it) can easily validate the xml for you.


- Jackie



lornen wrote:
Hi,


This is my first time using MapGuide Enterprise, and I would appreciate some help. 

I am getting a XML Parser exception when I tried to SetResource at the last line of the code.


 CODE:

        private void CreateMarkupLayer()

        {

            string markupName = "redline";

            MgSiteConnection site = getSite();

            MgResourceService resourceService = (MgResourceService)site.CreateService(MgServiceType.ResourceService);

            MgFeatureService featureService = (MgFeatureService) site.CreateService(MgServiceType.FeatureService);

            // Create the Markup Feature Source (SDF)


            MgResourceIdentifier markupID = new MgResourceIdentifier("Library://Markup/" + markupName + ".FeatureSource");

            MgFeatureSchema markupSchema = MarkupSchemaFactory.CreateMarkupSchema();

            MgCreateSdfParams sdfParams = new MgCreateSdfParams("LL84", LL84WKT, markupSchema);

            featureService.CreateFeatureSource(markupID, sdfParams);


            LayerDefinitionFactory factory = new LayerDefinitionFactory();

            // Create a line rule.

            string legendLabel = "";

            string filter = "";

            string color = "FF0000FF";

            string lineRule = factory.CreateLineRule(legendLabel,filter,color);

            // Create a line type style.

            string lineTypeStyle = factory.CreateLineTypeStyle(lineRule);

            // Create a scale range.

            string minScale = "0";

            string maxScale = "1000000000000";

            string lineScaleRange = factory.CreateScaleRange(minScale, maxScale, lineTypeStyle);

            // Create the layer definiton.

            string featureClass = "Library://Markup/" + markupName + ".FeatureSource";

            string featureName = "MarkupSchema:Markup";

            string geometry = "SHPGEOM";

            string layerDefinition = factory.CreateLayerDefinition(featureClass, featureName,geometry,lineScaleRange);

            XmlDocument doc = new XmlDocument();

            doc.LoadXml(layerDefinition);

            System.Text.UTF8Encoding utf = new System.Text.UTF8Encoding();

            byte[] BytelayerDefinition = utf.GetBytes(layerDefinition);

            MgByteSource byteSource = new MgByteSource(BytelayerDefinition, BytelayerDefinition.Length);

            byteSource.SetMimeType(MgMimeType.Xml);

            resourceService.SetResource(markupID, byteSource.GetReader(), null);

        }



The string layerDefinition which i got from factory.CreateLayerDefinition() is as follows:


<?xml version="1.0" encoding="UTF-8"?>

<LayerDefinition version="1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="LayerDefinition-1.0.0.xsd">

    <VectorLayerDefinition>

      <ResourceId>Library://Markup/redline.FeatureSource</ResourceId>

      <FeatureName>MarkupSchema:Markup</FeatureName>

      <FeatureNameType>FeatureClass</FeatureNameType>

      <Geometry>SHPGEOM</Geometry>

      <VectorScaleRange>

        <MinScale>0</MinScale>

        <MaxScale>1000000000000</MaxScale>

        <LineTypeStyle>

          <LineRule>

            <LegendLabel></LegendLabel>

            <Filter></Filter>

            <LineSymbolization2D>              

              <LineStyle>Solid</LineStyle>

              <Thickness>1</Thickness>

              <Color>FF0000FF</Color>

              <Unit>Points</Unit>

            </LineSymbolization2D>

          </LineRule>

        </LineTypeStyle>

      </VectorScaleRange>

    </VectorLayerDefinition>

  </LayerDefinition>



I'm using asp.net, c# and MapGuide Enterprise 2007


Thanks








            
This email is a reply to your post @ http://n2.nabble.com/Need-help-in-layerdfefinition-tp1814847p1814848.html

You can reply by email or by visting the link above.









-- 
View this message in context: http://n2.nabble.com/Need-help-in-layerdfefinition-tp1814847p2096880.html
Sent from the MapGuide Users mailing list archive at Nabble.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/mapguide-users/attachments/20081231/4e0feec6/attachment.html


More information about the mapguide-users mailing list