[mapguide-users] SV: Runtime map problem

Kenneth Skovhede, GEOGRAF A/S ks at geograf.dk
Wed Dec 3 04:45:22 EST 2008


I wrote a follow up, with corrected code.
You are using the initial one, and you are missing a "?" mark in the 
redirect URL.

Try to use the updated version, and beware of the question mark in the 
Response.Redirect call.


Regards, Kenneth Skovhede, GEOGRAF A/S



padmini godavarthi skrev:
> Hi,
> Thanks for u r reply.
>
>
> I tried this code but i got an error that
>
> Server Error in '/maestro' Application.
> --------------------------------------------------------------------------------
>
> HTTP Error 400 - Bad Request. 
>
> --------------------------------------------------------------------------------
> Version Information: ASP.NET Development Server 8.0.0.0 
>
>
> my code was 
>
>     Dim host As New Uri("http://localhost/mapguide/mapagent/mapagent.fcgi")
>         Dim conn As New HttpServerConnection(host, "Administrator", "admin",
> "en", True)
>
>         'You have to change the string below to point at a valid WebLayout
>
>         Dim weblayout As WebLayout = conn.GetWebLayout("Library://Filebased
> data/Layout/layout.WebLayout")
>         Dim mapdefinition As MapDefinition =
> conn.GetMapDefinition(weblayout.Map.ResourceId)
>         weblayout.Map.InitialView = New MapViewType()
>         weblayout.Map.InitialView.Scale = 2000 'Zoom to 1:2000
>         weblayout.Map.InitialView.CenterX = (mapdefinition.Extents.MaxX -
> mapdefinition.Extents.MinX) + mapdefinition.Extents.MinX
>         weblayout.Map.InitialView.CenterY = (mapdefinition.Extents.MaxY -
> mapdefinition.Extents.MinX) + mapdefinition.Extents.MinY
>
>         Dim tempid As ResourceIdentifier = New ResourceIdentifier("layout",
> OSGeo.MapGuide.MaestroAPI.ResourceTypes.WebLayout, conn.SessionID)
>
>         Response.Redirect("/mapguide/ajaxviewer/WEBLAYOUT=" &
> Server.UrlEncode(tempid)
>
> joscsu wrote:
>   
>>  Or this:
>> System.Guid.NewGuid().ToString()
>>
>>
>> ----- Ursprungligt meddelande ----
>> Från: Maksim Sestic <max at geoinova.com>
>> Till: MapGuide Users Mail List <mapguide-users at lists.osgeo.org>
>> Skickat: tisdag 2 december 2008 16:49:21
>> Ämne: RE: [mapguide-users] Runtime map problem
>>
>> Try this:
>>
>> System.Guid.NewGuid() 
>>
>>
>>
>> -----Original Message-----
>> From: mapguide-users-bounces at lists.osgeo.org
>> [mailto:mapguide-users-bounces at lists.osgeo.org] On Behalf Of padmini
>> godavarthi
>> Sent: Tuesday, December 02, 2008 15:35
>> To: mapguide-users at lists.osgeo.org
>> Subject: Re: [mapguide-users] Runtime map problem
>>
>>
>> Hi,
>> Thanku very much for ur help
>> i tried this code
>> but i got an error in the line
>>
>> Dim tempid as ResourceIdentifier = new ResourceIdentifier(Guid.NewGuid(),
>> OSGeo.MapGuide.MaestroAPI.ResourceTypes.WebLayout, con.SessionID)
>>
>> because of this Guid.NewGuid()
>>
>> 1) Actually what is this?
>> 2) Which paramater we have to pass in this place instead of Guid.NewGuid()
>>
>>
>> Regards,
>> Padmini
>>
>>
>>
>>
>> Kenneth Skovhede, GEOGRAF A/S wrote:
>>     
>>> I forgot to save the weblayout in the code below :(
>>>
>>> Updated version is:
>>>
>>> 'Setup connection
>>> Dim host As New 
>>> Uri("http://localhost/mapguide/mapagent/mapagent.fcgi")
>>> Dim conn As New HttpServerConnection(host, "Administrator", "admin", 
>>> "en", True)
>>>
>>> 'You have to change the string below to point at a valid WebLayout Dim 
>>> weblayout as WebLayout =
>>> con.GetWebLayout("Library://mylayout.WebLayout")
>>> Dim mapdefinition as MapDefinition =
>>> con.GetMapDefinition(weblayout.Map.ResourceId)
>>>
>>> 'Modify the initial view of the weblayout weblayout.Map.InitialView = 
>>> new MapViewType() weblayout.Map.InitialView.Scale = 2000 'Zoom to 
>>> 1:2000 weblayout.Map.InitialView.CenterX = (mapdefinition.Extents.MaxX 
>>> -
>>> mapdefinition.Extents.MinX) + mapdefinition.Extents.MinX 
>>> weblayout.Map.InitialView.CenterY = (mapdefinition.Extents.MaxY -
>>> mapdefinition.Extents.MinX) + mapdefinition.Extents.MinY
>>>
>>> 'Obtain a unique session based id for the temporary weblayout (which 
>>> is a copy of an existing WebLayout) Dim tempid as ResourceIdentifier = 
>>> new ResourceIdentifier(Guid.NewGuid(),
>>> OSGeo.MapGuide.MaestroAPI.ResourceTypes.WebLayout, con.SessionID)
>>>
>>> 'Save the layout, otherwise you can't reference it 
>>> con.SaveResourceAs(weblayout, tempid)
>>>
>>> 'Open the viewer, and use the temporary layout, since the map only 
>>> exists in the 'current session, we must use that session, and NOT 
>>> supply username/password
>>> 'BEWARE: The session belongs to the Administrator account, so the user 
>>> gets full access to MapGuide (delete, modify, etc.) 
>>> Response.Redirect("/mapguide/ajaxviewer/?WEBLAYOUT=" &
>>> Server.UrlEncode(tempid) & "&SESSION=" & 
>>> Server.UrlEncode(con.SessionID))
>>>
>>>
>>> Regards, Kenneth Skovhede, GEOGRAF A/S
>>>
>>>
>>>
>>> Kenneth Skovhede, GEOGRAF A/S skrev:
>>>       
>>>> To build a map, you must have all the components:
>>>> 1. FeatureSource, references data
>>>> 2. LayerDefinition, references a FeatureSource 3. MapDefinition, 
>>>> references multiple LayerDefinitions 4. WebLayout, references a 
>>>> MapDefinition
>>>>
>>>> All these items must be in a repository (either Library or Session), 
>>>> otherwise they can't be referenced.
>>>>
>>>> When you write that you want to "create a WebLayout programatically", 
>>>> do you want to create ALL the above items, or do you have layers and 
>>>> featuresources?
>>>>
>>>> (1) If you want to generate a WebLayout ResourceID, you should use:
>>>> Dim res As New ResourceIdentifier("Filebased data/Maps/mapdata",
>>>> ResourceTypes.WebLayout)
>>>> If you want to read the name of an existing MapDefinition from 
>>>> another layout, you must do:
>>>> Dim weblayout as WebLayout =
>>>> con.GetWebLayout("Library://mylayout.WebLayout")
>>>> Dim res as String = webLayout.Map.ResourceId
>>>>
>>>> (2) I don't understand the question.
>>>>
>>>> (3) The MapDefinition is an Xml document. Inside, it references 
>>>> layers, which references featuresources, as described above. It is 
>>>> very slow to do this, so when you open a map in the browser, the xml 
>>>> is transformed into a binary object. This object contains all the 
>>>> info from the MapDefinition and some info from the layers and 
>>>> featuresources.
>>>>
>>>> You need to know this, because if you try to toggle layer visibility 
>>>> in the MapDefinition, nothing happens. In short, the Runtime Map is a 
>>>> binary object that you can manipulate using the MapGuide (and 
>>>> Maestro)-API, and it only works for a displayed map.
>>>> Upon startup, the Runtime Map is identical to the MapDefinition it 
>>>> was created from.
>>>>
>>>>
>>>> A short example of using an existing WebLayout:
>>>>
>>>> Dim host As New 
>>>> Uri("http://localhost/mapguide/mapagent/mapagent.fcgi")
>>>> Dim conn As New HttpServerConnection(host, "Administrator", "admin", 
>>>> "en", True)
>>>>
>>>> 'You have to change the string below to point at a valid WebLayout
>>>>   
>>>> Dim weblayout as WebLayout =
>>>> con.GetWebLayout("Library://mylayout.WebLayout")
>>>> Dim mapdefinition as MapDefinition =
>>>> con.GetMapDefinition(weblayout.Map.ResourceId)
>>>> weblayout.Map.InitialView = new MapViewType() 
>>>> weblayout.Map.InitialView.Scale = 2000 'Zoom to 1:2000 
>>>> weblayout.Map.InitialView.CenterX = (mapdefinition.Extents.MaxX -
>>>> mapdefinition.Extents.MinX) + mapdefinition.Extents.MinX 
>>>> weblayout.Map.InitialView.CenterY = (mapdefinition.Extents.MaxY -
>>>> mapdefinition.Extents.MinX) + mapdefinition.Extents.MinY Dim tempid 
>>>> as ResourceIdentifier = new ResourceIdentifier(Guid.NewGuid(),
>>>> OSGeo.MapGuide.MaestroAPI.ResourceTypes.WebLayout, con.SessionID) 
>>>> Response.Redirect("/mapguide/ajaxviewer/?WEBLAYOUT=" &
>>>> Server.UrlEncode(tempid) & "&USERNAME=Anonymous&PASSWORD=")
>>>>
>>>>
>>>> Regards, Kenneth Skovhede, GEOGRAF A/S
>>>>   
>>>>
>>>> padmini godavarthi skrev:
>>>>         
>>>>> Hi,
>>>>> Thanks for u r reply
>>>>>
>>>>> actually i wrote the code as
>>>>>
>>>>>
>>>>>     Dim host As New
>>>>> Uri("http://localhost/mapguide/mapagent/mapagent.fcgi")
>>>>>         Dim conn As New HttpServerConnection(host, "Administrator", 
>>>>> "admin", "en", True)
>>>>>         Dim res As New ResourceIdentifier("Filebased 
>>>>> data/Maps/mapdata",
>>>>> ResourceTypes.MapDefinition)
>>>>>         Dim mapId As String = res.ResourceId
>>>>>
>>>>>
>>>>> with that i got the map resource id.
>>>>>
>>>>> But actually to run the application the url in the browser must be 
>>>>> like
>>>>>
>>>>>
>>>>> http://localhost/mapguide/mapviewerajax/?WEBLAYOUT=Library%3a%2f%2fF
>>>>> ilebased+data%2fLayout%2flayout.WebLayout
>>>>>
>>>>> 1) How can i get this weblayout (like
>>>>> Library%3a%2f%2fFilebased+data%2fLayout%2flayout.WebLayout)
>>>>> programmetically
>>>>>
>>>>> 2) I want to redirect to the ajax viewer sample application through 
>>>>> asp.net (like given by u )
>>>>>       
>>>>> Response.Redirect("/mapguide/ajaxviewer/?WEBLAYOUT=...resourceId
>>>>> for
>>>>> your WebLayout...&USERNAME=Anonymous&PASSWORD=");
>>>>>
>>>>> 3) Can u plz tell me the purpose of runtime map (actualli iam in 
>>>>> configusing
>>>>> state)
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Kenneth Skovhede, GEOGRAF A/S wrote:
>>>>>   
>>>>>           
>>>>>> Instead of re-posting the original question, could you try to 
>>>>>> explain what parts of my previous reply that are unclear or wrong?
>>>>>>
>>>>>> http://www.nabble.com/How-to-Load-Runtime-map-in-mapviewerajax-to20
>>>>>> 704038.html#a20769349
>>>>>>
>>>>>> Regards, Kenneth Skovhede, GEOGRAF A/S
>>>>>>
>>>>>>
>>>>>>
>>>>>> padmini godavarthi skrev:
>>>>>>     
>>>>>>             
>>>>>>>   Hi ,
>>>>>>> iam using mapguide open source 2.0( with .Net 2.0 + IIS 5.1) Iam 
>>>>>>> using dotnet viewer sample while running the application i 
>>>>>>> observed that the layout path given in the application.
>>>>>>>
>>>>>>> as
>>>>>>>
>>>>>>> String webLayout =
>>>>>>> "Library://Samples/Sheboygan/Layouts/SheboyganAspTiled.WebLayout";
>>>>>>>
>>>>>>>   it works but now i want to create this weblayout in run time (by
>>>>>>> code)
>>>>>>> using mapguide maestro api
>>>>>>>
>>>>>>> for this purpose i followed the link
>>>>>>>
>>>>>>> http://trac.osgeo.org/mapguide/wiki/maestro/MaestroAPI/samples/Run
>>>>>>> timeMap
>>>>>>>
>>>>>>> but i didnt get any out.
>>>>>>>
>>>>>>> can u plz tell me
>>>>>>>
>>>>>>> 1) how to create this weblayout in run time
>>>>>>> 2) How it will works
>>>>>>>
>>>>>>> If u know this plz tell me the procedure.
>>>>>>>
>>>>>>>
>>>>>>> Regards,
>>>>>>> Padmini.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>   
>>>>>>>       
>>>>>>>               
>>>>>> _______________________________________________
>>>>>> 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
>>>>   
>>>>         
>>> _______________________________________________
>>> mapguide-users mailing list
>>> mapguide-users at lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/mapguide-users
>>>
>>>
>>>       
>> --
>> View this message in context:
>> http://www.nabble.com/Runtime-map-problem-tp20789983p20793385.html
>> Sent from the MapGuide Users mailing list archive at Nabble.com.
>>
>> _______________________________________________
>> mapguide-users mailing list
>> mapguide-users at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/mapguide-users
>>
>> __________ Information from ESET NOD32 Antivirus, version of virus
>> signature
>> database 3658 (20081202) __________
>>
>> The message was checked by ESET NOD32 Antivirus.
>>
>> http://www.eset.com
>>
>>
>>
>> _______________________________________________
>> mapguide-users mailing list
>> mapguide-users at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/mapguide-users
>>
>>
>>
>>       __________________________________________________________
>> Låna pengar utan säkerhet. Jämför vilkor online hos Kelkoo.
>> http://www.kelkoo.se/c-100390123-lan-utan-sakerhet.html?partnerId=96915014
>> _______________________________________________
>> mapguide-users mailing list
>> mapguide-users at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/mapguide-users
>>
>>
>>     
>
>   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/mapguide-users/attachments/20081203/13a617b0/attachment.html


More information about the mapguide-users mailing list