[mapguide-users] Load weblayout from library and write to session then load

Jamo adam.jamison at portbris.com.au
Sun Jan 16 23:20:57 EST 2011


Ok im attempting to simply load a weblayout from the library and write it to
the session then redirect the browser to the session weblayout .... is this
possible

I will attempt to adjust the center scale and position as well but for now i
can't even load it from the session

any help is much appreciated

protected void Page_Load(object sender, EventArgs e)
    {
        Response.Charset = "utf-8";
       
MapGuideApi.MgInitializeWebTier(Request.ServerVariables["APPL_PHYSICAL_PATH"]
+ "../webconfig.ini");
        string webLayout =
@"Library://portbris/layouts/portbrisStandard.WebLayout";


        string defaultUser = "Administrator";
        string defaultPassword = "admin";

        MgUserInformation userInfo = new MgUserInformation(defaultUser,
defaultPassword);
        MgSiteConnection siteConnection = new MgSiteConnection();
        
        siteConnection.Open(userInfo);
        MgSite site = siteConnection.GetSite();
        string sessionId = site.CreateSession();
        
        MgResourceService resourceService =
siteConnection.CreateService(MgServiceType.ResourceService) as
MgResourceService;
        
        
        if (Request["X"] != null && Request["Y"] != null && Request["scale"]
!= null)
        {
            string centerX = Request["X"].ToString();
            string centerY = Request["Y"].ToString();
            string scale = Request["scale"].ToString();

            MgResourceIdentifier wlResourceId = new
MgResourceIdentifier(webLayout);
            
            MgByteReader reader
=resourceService.GetResourceContent(wlResourceId);

            XmlDocument doc = new XmlDocument();
            String xmlLayoutDef = reader.ToString();
            doc.LoadXml(xmlLayoutDef);

            //this is where i will modify the initial Center and scale
            //webLayoutXML.GetElementsByTagName("CenterX").Item(0).InnerText
= centerX;
            //webLayoutXML.GetElementsByTagName("CenterY").Item(0).InnerText
= centerY;
            //webLayoutXML.GetElementsByTagName("Scale").Item(0).InnerText =
scale;

            MgResourceIdentifier newLayout = new
MgResourceIdentifier("Session:" + sessionId +
"//portbrisStandard.WebLayout");
            resourceService.SetResource(newLayout, new
MgByteReader(doc.OuterXml, "text/xml"), null);

           
Response.Redirect("http://vmapp04/mapguide2010/mapviewerajax/?WEBLAYOUT=Session:"
+ sessionId + "//portbrisStandard.WebLayout");
           
//http://vmapp04/mapguide2010/portbris/SendToFriend/default.aspx?x=500&y=500&scale=500
        }
    }
-- 
View this message in context: http://osgeo-org.1803224.n2.nabble.com/Load-weblayout-from-library-and-write-to-session-then-load-tp5930738p5930738.html
Sent from the MapGuide Users mailing list archive at Nabble.com.


More information about the mapguide-users mailing list