[mapguide-users] Load Layer Definition XML

clarkie342 f2000342 at gmail.com
Mon Mar 9 19:45:11 EDT 2009


I have couple of questions regarding use of Maestro API

>> when using Maestro API, am I technically replacing MGE Web Tier API?

>> Should I be replacing 

        MapGuideApi.MgInitializeWebTier(CommonUtilities.configPath)
        Dim userInfo As MgUserInformation = New MgUserInformation(session)
        Dim Mysiteconn As MgSiteConnection = New MgSiteConnection()
        Mysiteconn.Open(userInfo)

with

conn = New LocalNativeConnection("webconfig.ini", username, password, "en")
or do I still need both?

Thanks. 


Kenneth Skovhede, GEOGRAF A/S wrote:
> 
> Yes, I run it with MGE 2009.
> 
> Regards, Kenneth Skovhede, GEOGRAF A/S
> 
> 
> 
> clarkie342 skrev:
>> Hi,
>>
>> Does MaestroAPI work with Mapguide Enterprise?
>> Thanks.
>>
>>
>> wordsy wrote:
>>   
>>> Thanks for the quick response.  It was exactly what I needed.
>>>
>>> Cheers!
>>>
>>>
>>> Kenneth Skovhede, GEOGRAF A/S wrote:
>>>     
>>>> If you want to modify the layer xml, you just read the xml like this:
>>>>
>>>> MgByteReader rd = resourceSrvc.GetResource(new 
>>>> MgResourceIdentifier("Library://layer.LayerDefinition"));
>>>>
>>>> If you want to work seriously with layerdefinitions (and the MapGuide 
>>>> xml), I have created the MaestroAPI,
>>>> which lets you manipulate classes instead of xml:
>>>> http://trac.osgeo.org/mapguide/wiki/maestro/MaestroAPI
>>>>
>>>> Using the MaestroAPI, you can just do:
>>>> LayerDefinition ldef = 
>>>> con.GetLayerDefinition("Library://layer.LayerDefinition");
>>>> VectorLayerDefinition vldef = ldef.Item as VectorLayerDefinition;
>>>> foreach(VectorScaleRangeType vsr in vldef.ScaleRanges)
>>>>     foreach(object o in vsr.Item)
>>>>        if (o is PointTypeStyleType)
>>>>           ; //Layer has points
>>>>        else if (o is LineTypeStyleType)
>>>>           ; //Layer has lines
>>>>        else if (o is AreaTypeStyleType)
>>>>           ; //Layer has polygons
>>>>
>>>>
>>>> Also, changing a style is easy, eg:
>>>> PointTypeStyleType point = vldef.ScaleRanges[0].Item[0] as 
>>>> PointTypeStyleType;
>>>> p.PointRule[0].Label.BackgroundColor = System.Drawing.Color.Red;
>>>>
>>>> Then save:
>>>> con.SaveResource(ldef);
>>>>
>>>> All is fully intellisense supported in VS.
>>>>
>>>>
>>>> Regards, Kenneth Skovhede, GEOGRAF A/S
>>>>
>>>>
>>>>
>>>> wordsy skrev:
>>>>       
>>>>> Hey Everyone;
>>>>>
>>>>> Fairly new to MGOS.
>>>>>
>>>>> Here is what I am trying to do.  
>>>>>
>>>>> I have a map with many Layers.  One of my requirements is to allow
>>>>> users
>>>>> to
>>>>> be able to change the layer styles via a web wizard.  The user will be
>>>>> able
>>>>> to adjust certain styles for line/point/polygon (surface).  Ie font,
>>>>> symbol,
>>>>> line thickness, color etc.
>>>>>
>>>>> Already my site allows a user to select the layer they want to change,
>>>>> then
>>>>> change the styles for a point only.  The changing doesn't seem to be a
>>>>> problem right now.
>>>>>
>>>>> The problem I have:
>>>>>
>>>>> Once a user selects the layer they want to load.  How would I get the
>>>>> layer
>>>>> and use XML document or XPATH or something to allow the users edit XML
>>>>> nodes.
>>>>>
>>>>> Here is my code that checks to see what layer type I have when the
>>>>> user
>>>>> selects the layer.  I have 3 different user controls (one for line,
>>>>> one
>>>>> for
>>>>> poly, one for line).  What I really want, is to load the layer and
>>>>> populate
>>>>> the appropriate controls inside the user control.
>>>>>
>>>>>  MgSiteConnection conn = InitializeGisWebTier();
>>>>>             string resource = "Library://MUNICIPALITIES/" +
>>>>> Municipality
>>>>> +
>>>>> "/2_DATA/" + LayerName + ".FeatureSource";
>>>>>
>>>>>             MgResourceService svc =
>>>>> (MgResourceService)conn.CreateService(MgServiceType.ResourceService );
>>>>>
>>>>>             // Populate some values that we will need.
>>>>>             MgResourceIdentifier resourceId = new
>>>>> MgResourceIdentifier(resource);              
>>>>>             MgFeatureReader featureReader =
>>>>> LayerDefinitionFactory.MakeAFeatureReader(conn, resourceId);                        
>>>>>             
>>>>>             // Find out what type of Geometric property the
>>>>> FeatureSource we
>>>>> uploaded has.
>>>>>             string geometricPropertyType =
>>>>> LayerDefinitionFactory.GetFeatureSourceGeometricPropertyType(featureReader);
>>>>>
>>>>>             switch (geometricPropertyType)
>>>>>             {
>>>>>                 case "SURFACE":
>>>>>                     // We load the Polygon usercontrol
>>>>>                     this.phStylizeLayerControl.Controls.Add(new
>>>>> PolygonStyleBuilder());
>>>>>                     break;
>>>>>                 case "POINT":
>>>>>                     // we load the point usercontrol
>>>>>                     //this.phStylizeLayerControl.Controls.Add(new
>>>>> PointStyleBuilder());
>>>>>                     PointStyleBuilder control =
>>>>> (PointStyleBuilder)LoadControl("~/Pages/Controls/PointStyleBuilder.ascx");
>>>>>                     this.phStylizeLayerControl.Controls.Add(control);
>>>>>                     txtSymbol.Enabled = true;
>>>>>                     txtSymbolSize.Enabled = true;
>>>>>                     break;
>>>>>                 case "CURVE":
>>>>>                     // we load the line user control
>>>>>                     this.phStylizeLayerControl.Controls.Add(new
>>>>> LineStyleBuilder());
>>>>>                     break;
>>>>>             }
>>>>>
>>>>> Thanks for any help in advance.
>>>>>   
>>>>>         
>>>> _______________________________________________
>>>> mapguide-users mailing list
>>>> mapguide-users at lists.osgeo.org
>>>> http://lists.osgeo.org/mailman/listinfo/mapguide-users
>>>>
>>>>
>>>>       
>>>     
>>
>>   
> 
> _______________________________________________
> 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/Load-Layer-Definition-XML-tp2199703p2452354.html
Sent from the MapGuide Users mailing list archive at Nabble.com.



More information about the mapguide-users mailing list