[mapguide-users] Problem with Layer Editing

Kenneth Skovhede, GEOGRAF A/S ks at geograf.dk
Wed Dec 10 02:46:20 EST 2008


You should not modify the viewer code.
You should not open the viewer code with visual studio.
If you consider the viewer a "black box", you will find upgrading much 
easier later on.
The viewer does not follow MS best practices, and does not use code-behind.

Instead, you should create a seperate .Net Web solution, and just 
something like the
framed setup found in the developers guide:
http://mapguide.osgeo.org/2.0/documentation.html

On buttons, and other, you can then load the page, or better, use AJAX 
to invoke server side methods.

Regards, Kenneth Skovhede, GEOGRAF A/S



padmini godavarthi skrev:
> Hi 
> iam using mapguide opensource 2.0(with .net 2.0 +IIS 5.1)
> i already asked the question
>
> 1)How to edit the layer
>
> some one give me the answer as follows
>
>
> Read setup from querystring or form 
> Dim sessionID As String = Request.Params("SESSIONID") 
> Dim mapdefinition As String = Request.Params("MAPDEFINITION") 
> Dim layername As String = Request.Params("LAYERNAME") 
> Dim newFilter As String = Request.Params("NEWFILTER") 
>
> 'Replace "myserver" with the server name, or use "localhost" 
> Dim host As New Uri("http://myserver/mapguide/mapagent/mapagent.fcgi") 
> Dim conn as ServerConnectionI = New HttpServerConnection(host, sessionID,
> "en", true) 
>
> 'Use the same naming system as the viewer, when reading the runtime map ID 
> Dim mapName as String = new ResourceIdentifier(mapdefinition).Name 
> Dim rtMapId as String = new ResourceIdentifier(mapName,
> ResourceTypes.RuntimeMap, conn.SessionID) 
>
> 'Load the runtime map 
> Dim rtMap as RuntimeClasses.RuntimeMap = conn.GetRuntimeMap(rtMapId) 
> Dim rtLayer as RuntimeClasses.RuntimeMapLayer = rtMap.Layers(layername) 
>
> 'Get the current layer and assing the filter 
> Dim layerDefinition as LayerDefinition =
> conn.GetLayerDefinition(rtLayer.ResourceId) 
> Dim vectorLayerDefinition as VectorLayerDefinitionType =
> layerDefinition.Item 
> vectorLayerDefinition.Filter = newFilter 
>
> 'Save a copy of the layer, temporary, and random name 
> rtLayer.ResourceID = new ResourceIdentifier(Guid.NewGuid().ToString(),
> ResourceTypes.LayerDefinition, conn.SessionID) 
> conn.SaveResourceAs(layerDefinition, rtLayer) 
>
> 'Save the runtime map, pointing to the updated layerdefinition 
> conn.SaveRuntimeMap(rtMapId, rtMap) 
>
> 'Tell the client to refresh 
> RegisterStartupScript("key", "<script>GetMapFrame().Refresh();</script>") 
>
> but my problem is that
>
> 1) I dont know where to and how to start the code
>
> i had only main.aspx page which contains the following code 
>
>
>
>      %@ Page language="c#" %>
> <%@ Import Namespace="System.IO" %>
> <%@ Import Namespace="System.Collections.Specialized" %>
> <%@ Import Namespace="System.Text" %>
> <%@ Import Namespace="System.Globalization" %>
> <%@ Import Namespace="OSGeo.MapGuide" %>
>
> <script runat="server">
>     String webLayout = "Library://Filesample/layout/weblay.WebLayout";
> String sessionId = "";
> </script>
>
> <%
>     try
>     {
>         // Initialize a session and register a variable to hold the
>         // session id, then initialize the Web Extensions, connect
>         // to the site, and create a session.
>
>         // Initialize Web Server Extensions.
>         String realPath = Request.ServerVariables["APPL_PHYSICAL_PATH"];
>         String configPath = realPath + "..\\webconfig.ini";
>         MapGuideApi.MgInitializeWebTier(configPath);
>
>         // Connect to the site.
>         MgUserInformation userInfo = new MgUserInformation("Anonymous", "");
>         MgSite site = new MgSite();
>         site.Open(userInfo);
>
> 		// Create a session
>         sessionId = site.CreateSession();
>
>     }
>     catch (Exception e)
>     {
>         Response.Write(e.Message);
>     }
> %>
>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
> <html xmlns="http://www.w3.org/1999/xhtml" >
> <head>
>     <title>MapGuide Developer's Guide ASP.NET Samples</title>
>     
> </script>
> </head>
>
> <frameset rows="110,*" frameborder="no" framespacing="0">
> 	<frame id="titleFrame" frameborder="no" marginwidth="0" marginheight="0"
> scrolling="no" src="title.html">
> 	<frame id="viewerFrame" frameborder="no" marginwidth="0" marginheight="0"
> scrolling="no"
> src="../mapviewernet/ajaxviewer.aspx?SESSION=<%=sessionId%>&WEBLAYOUT=<%=webLayout%>">
> </frameset>
>
> </html>
>
> In my weblayout there is 2 layers  (polgon layer and line layer)
>
> i looked at the code for dotnetsmples but i totally confused with that code.
>
> can u plz tell me how to and where i can write the code for layer editing
>
>
>
> Thanks and Regards,
> Padmini.
>
>
>   


More information about the mapguide-users mailing list