Re[mapguide-users] turn all Layers from MapGuide repository
Darrin Maidlow
dmaidlow at landorgis.com
Thu Jun 12 10:38:41 EDT 2008
Hi,
The following code should do what you're looking for.
Public Shared Function GetAllResources(ByRef resSvc As
MgResourceService, ByVal resId As MgResourceIdentifier, ByVal nDepth As
Integer, ByVal szType As String) As XmlDocument
Dim retDoc As XmlDocument
retDoc = ConvertMgReaderXml(resSvc.EnumerateResources(resId,
nDepth, szType))
Return XmlDocument
End Function
Set the , resID to "Library://", depth to -1 I believe for full recursion.
For Type use LayerDefinition
And ConvertMgReaderXML is:
Public Shared Function ConvertMgReaderXml(ByVal byteReader As
MgByteReader) As XmlDocument
Dim szXML As String
Try
szXML = byteReader.ToString
Catch ex As Exception
Throw ex
End Try
Dim nByteCount As Integer
Dim arrByte(szXML.Length) As Byte
Try
nByteCount = Encoding.UTF8.GetBytes(szXML, 0,
szXML.Length, arrByte, 0)
Catch ex As Exception
Throw ex
End Try
Dim memStream As New MemoryStream(arrByte)
Dim retDoc As New XmlDocument
retDoc.PreserveWhitespace = True
Try
retDoc.Load(memStream)
Catch ex As Exception
memStream.Close()
memStream.Dispose()
Throw ex
End Try
memStream.Close()
memStream.Dispose()
Return retDoc
End Function
Hope that helps.
darrin
-----Original Message-----
From: mapguide-users-bounces at lists.osgeo.org
[mailto:mapguide-users-bounces at lists.osgeo.org] On Behalf Of adnan.c
Sent: Thursday, June 12, 2008 4:17 AM
To: mapguide-users at lists.osgeo.org
Subject: Re[mapguide-users] turn all Layers from MapGuide repository
Hello All,
Currently working with the API for MapGuide OpenSource 2.0 and have a
requirement for returning all layers from the MapGuide repository.
I am able to return all layer names for a particular map using the below C#
code
map.Open(resService, mapName);
MgLayerCollection layers = map.GetLayers();
ArrayList layerNames = new ArrayList();
for (int i = 0; i < layers.GetCount(); i++)
{
MgLayer layer = (MgLayer)layers.GetItem(i);
string layerType = layer.GetFeatureGeometryName();
layerNames.Add(layer.GetName());
}
How would I go about returning all Layers in the MapGuide repository as a
large number of layers won't be associated with a map?
Many Thanks,
Adnan
--
View this message in context:
http://www.nabble.com/Return-all-Layers-from-MapGuide-repository-tp17796701p
17796701.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
More information about the mapguide-users
mailing list