[mapguide-users] Runtime map problem

padmini godavarthi godavarthi.padmini at gmail.com
Tue Dec 2 09:35:04 EST 2008


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%2fFilebased+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-to20704038.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/RuntimeMap
>>>>>
>>>>> 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.



More information about the mapguide-users mailing list