[mapguide-users] Add new layer to map
Kenneth Skovhede, GEOGRAF A/S
ks at geograf.dk
Wed Jan 21 05:23:37 EST 2009
I don't understand what you mean.
Changes to the runtime map does not go into MGStudio.
Only changes to the MapDefinition xml can be seen there.
Regards, Kenneth Skovhede, GEOGRAF A/S
sekko970 skrev:
> Dear Kenneth,
> I need your help for a second problem:
>
> I apparently save successfully the new layer into library repository (the
> legend and the map are correctly updated, and from MGStudio the new layer is
> visible in layers list), but in MGStudio 'Layer by group' view, my layer
> doesn't appear, so that when I reload the map, the new layer is lost (but
> it's present in MGStudio).
>
> Have you some idea?
> Thanks, Fabio
>
>
>
>
> sekko970 wrote:
>
>> You are right!
>>
>> Many thanks.
>>
>> Fabio
>>
>>
>>
>>
>> sekko970 wrote:
>>
>>> Dear all,
>>> I need to add a layer to my map from XML definition.
>>>
>>> This is my code:
>>>
>>> Public Sub CreateLater(ByVal sessionID As String, ByVal mapName As
>>> String, _
>>> ByVal newLayerName As String, ByVal
>>> groupName As String)
>>>
>>> Dim userInfo As New MgUserInformation
>>> userInfo.SetMgSessionId(sessionID)
>>>
>>> Dim siteConn As New MgSiteConnection
>>> siteConn.Open(userInfo)
>>>
>>> Dim resourceSrvc As MgResourceService =
>>> siteConn.CreateService(MgServiceType.ResourceService)
>>> Dim map As New MgMap()
>>> map.Open(resourceSrvc, mapName)
>>>
>>> 'Loading XML layer
>>> Dim newLayerXML As New XmlDocument
>>> newLayerXML.Load(Me.MapPath("NewLayer.xml"))
>>>
>>> 'Saving new layer in session repository
>>> Dim byteSource As New
>>> MgByteSource(Encoding.UTF8.GetBytes(newLayerXML.OuterXml),
>>> newLayerXML.OuterXml.Length)
>>> byteSource.SetMimeType(MgMimeType.Xml)
>>> Dim resID As New MgResourceIdentifier("Session:" & sessionID &
>>> "//" & newLayerName & "." & MgResourceType.LayerDefinition)
>>> resourceSrvc.SetResource(resID, byteSource.GetReader(), Nothing)
>>> Dim newLayer As New MgLayerBase(resID, resourceSrvc)
>>>
>>> 'Add new layer to group
>>> Dim layerGroup As MgLayerGroup = Nothing
>>> If map.GetLayerGroups().Contains(groupName) Then
>>> layerGroup = map.GetLayerGroups.GetItem(groupName)
>>> Else
>>> layerGroup = New MgLayerGroup(groupName)
>>> layerGroup.SetVisible(True)
>>> layerGroup.SetDisplayInLegend(True)
>>> layerGroup.SetLegendLabel(groupName)
>>> map.GetLayerGroups.Add(layerGroup)
>>> End If
>>> newLayer.SetGroup(layerGroup)
>>>
>>> 'Insert new layer to map
>>> newLayer.SetName(newLayerName)
>>> newLayer.SetVisible(True)
>>> newLayer.SetLegendLabel(newLayerName)
>>> newLayer.SetDisplayInLegend(True)
>>> map.GetLayers.Insert(0, newLayer)
>>>
>>> map.Save(resourceSrvc)
>>>
>>> Saving the map, an MgNotImplementedException occurs.
>>>
>>> Where is my mistake?
>>>
>>> Thanks in advance for your help.
>>> Fabio
>>>
>>>
>>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/mapguide-users/attachments/20090121/b5d0ee8b/attachment.html
More information about the mapguide-users
mailing list