[mapguide-users] Regarding Linking of Layers with Map at run time
ravinder.singh at BIRLASOFT.COM
ravinder.singh at BIRLASOFT.COM
Sat Feb 14 06:21:13 EST 2009
I have written the following code also, it uses xml and infact when this
code runs it runs perfectally without any problem, it does what I wanted
to do, it changes the map definition in web layout, and it runs
perfectally if I run from maestro, but when I try to run from my .net
page
<frame id="viewerFrame" frameborder="no" marginwidth="0"
marginheight="0" scrolling="no"
src="../mapviewernet/ajaxviewer.aspx?SESSION=<%=sessionId%>&WEBLAYOUT=<%
=webLayout%>">
Then the problem comes. And it says the following error.
Type 'OSGeo.MapGuide.MgNullArgumentException' in Assembly
'MapGuideDotNetApi, Version=2.0.0.2716, Culture=neutral,
PublicKeyToken=null' is not marked as serializable.
If I save the map once in maestro then the viewer also runs. I have also
tried to read the header of xml and passing in resourceSrvc.SetResource
as third parameter, the problem remains the same.
So I just want to confirm whether maestro API you suggested would be the
final and last way to do this thing, or some other way ? Because I am
not aware of using maestro api.
//Here is my code
MgUserInformation userInfo_new = new MgUserInformation(sessionId);
MgSiteConnection siteConnection = new MgSiteConnection();
siteConnection.Open(userInfo_new);
MgResourceService resourceSrvc =
(MgResourceService)siteConnection.CreateService(MgServiceType.ResourceSe
rvice);
MgMap map = new MgMap();
MgResourceIdentifier resId = new
MgResourceIdentifier("Library://Samples/Sheboygan/Maps/Sheboygan.MapDefi
nition");
String mapName = resId.GetName();
map.Create(resourceSrvc, resId, mapName);
MgResourceIdentifier mapStateId = new
MgResourceIdentifier("Session:" + sessionId + "//" + mapName + "." +
MgResourceType.Map);
map.Save(resourceSrvc, mapStateId);
MgResourceIdentifier webLayoutId = new
MgResourceIdentifier("Library:// Samples/ Sheboygan
/Layouts\BasicLayout.WebLayout");
MgByteReader byteReader =
resourceSrvc.GetResourceContent(webLayoutId);
XmlDocument doc = new XmlDocument();
String xmlLayoutDef = byteReader.ToString();
doc.LoadXml(xmlLayoutDef);
XmlNode parentNode =
doc.GetElementsByTagName("ResourceId").Item(0);
if (parentNode != null)
{
XmlNode mapRessource =
doc.SelectSingleNode("/WebLayout/Map/ResourceId");
if (mapRessource != null)
{
mapRessource.InnerText = "Library://Samples/Sheboygan/"
+ "Maps/Sheboygan" + ".MapDefinition";
String string1= doc.DocumentElement.OuterXml;
resourceSrvc.SetResource(webLayoutId, new
MgByteReader(string1, "text/xml"), null);
}
}
Regards,
Ravinder
________________________________
From: mapguide-users-bounces at lists.osgeo.org
[mailto:mapguide-users-bounces at lists.osgeo.org] On Behalf Of Kenneth
Skovhede, GEOGRAF A/S
Sent: Saturday, February 14, 2009 4:33 PM
To: MapGuide Users Mail List
Subject: Re: [mapguide-users] Regarding Linking of Layers with Map at
run time
The MgMap class represents a runtime map, not a MapDefinition.
There is no such class a a MgMapDefinition, so you have to read/write
the xml.
If you wish to use the standard viewer, you have to do this.
I was very annoyed by this, so I created the MaestroAPI that has classes
for all the Xml documents,
including the MapDefinition:
http://trac.osgeo.org/mapguide/wiki/maestro/MaestroAPI
If you start the viewer with an empty map, you can access the MgMap
object,
and add layers as runtime layers, using the MgMap.Layers.Add method.
Regards, Kenneth Skovhede, GEOGRAF A/S
ravinder.singh at BIRLASOFT.COM skrev:
Hi Stefan,
I put the way you said but it gives the following error now.
Type 'OSGeo.MapGuide.MgXmlParserException' in Assembly
'MapGuideDotNetApi, Version=2.0.0.2716, Culture=neutral,
PublicKeyToken=null' is not marked as serializable.
Regards,
Ravinder Singh
________________________________
From: mapguide-users-bounces at lists.osgeo.org
[mailto:mapguide-users-bounces at lists.osgeo.org] On Behalf Of Stefan
Dalakov
Sent: Friday, February 13, 2009 11:10 PM
To: MapGuide Users Mail List
Subject: Re: [mapguide-users] Regarding Linking of Layers with Map at
run time
Try
MgResourceIdentifier mapName = new MgResourceIdentifier("Session:" +
sessionId + "//Sheboygan.MapDefinition");
Stefan Dalakov
ravinder.singh at BIRLASOFT.COM wrote:
Hi All,
I have created the map definition in maestro and also created a web
layout, and I have hundreds of Maps, and each map will have a single
layer, but I don't want to create the hundreds of maps for each single
layer. For that purpose I though I will just make a single map and will
associate the layer at run time to that map. So I wrote the following
set of code for Sheboygan sample
But when I reach to map.Save(resourceSrvc, mapName)
it gives me the error
MgXmlParserException {"An exception occurred in the XML parser."}
And also I tried with Map.Open and then the following error comes
Resource was not found:
Session:b275c3b6-ffff-ffff-8000-001a4bb4a756_en_7F0000010AFC0AFB0AFA//Sa
mples/Sheboygan/Sheboygan.MapDefinition
I have written the following code
MgUserInformation userInfo = new MgUserInformation(defaultUser,
defaultPassword);
MgSite site = new MgSite();
site.Open(userInfo);
sessionId = site.CreateSession();
MgUserInformation userInfo_new = new MgUserInformation(sessionId);
MgSiteConnection siteConnection = new MgSiteConnection();
siteConnection.Open(userInfo_new);
MgResourceService resourceSrvc =
(MgResourceService)siteConnection.CreateService(MgServiceType.ResourceSe
rvice);
MgResourceIdentifier mapName = new MgResourceIdentifier("Session:" +
sessionId + "//Samples/Sheboygan/Sheboygan.MapDefinition");
MgMap map = new MgMap();
map.Open(resourceSrvc, mapName); // Here the problem comes
map.Save(resourceSrvc, mapName); // Here the problem comes
I am using .net aspx with map guide 2.0
Thanks & Regards,
Ravinder Singh
************************************************************************
************************************************************************
*********************
"This message and any attachments are solely for the intended recipient
and may contain Birlasoft confidential or privileged information. If you
are not the intended recipient,any disclosure,copying, use, or
distribution of the information included in this message and any
attachments is
prohibited. If you have received this communication in error, please
notify us by reply e-mail at (administrator at birlasoft.com) and
permanently delete this message and any attachments. Thank you."
************************************************************************
************************************************************************
*********************
________________________________
_______________________________________________
mapguide-users mailing list
mapguide-users at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapguide-users
************************************************************************
************************************************************************
*********************
"This message and any attachments are solely for the intended recipient
and may contain Birlasoft confidential or privileged information. If you
are not the intended recipient,any disclosure,copying, use, or
distribution of the information included in this message and any
attachments is
prohibited. If you have received this communication in error, please
notify us by reply e-mail at (administrator at birlasoft.com) and
permanently delete this message and any attachments. Thank you."
************************************************************************
************************************************************************
*********************
________________________________
_______________________________________________
mapguide-users mailing list
mapguide-users at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapguide-users
*********************************************************************************************************************************************************************
"This message and any attachments are solely for the intended recipient and may contain Birlasoft confidential or privileged information. If you are not the intended recipient,any disclosure,copying, use, or distribution of the information included in this message and any attachments is
prohibited. If you have received this communication in error, please notify us by reply e-mail at (administrator at birlasoft.com) and permanently delete this message and any attachments. Thank you."
*********************************************************************************************************************************************************************
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/mapguide-users/attachments/20090214/251850ce/attachment.html
More information about the mapguide-users
mailing list