Skip to content

Instantly share code, notes, and snippets.

@JeffJacobson
Last active September 30, 2015 16:48
Show Gist options
  • Save JeffJacobson/1829293 to your computer and use it in GitHub Desktop.
Save JeffJacobson/1829293 to your computer and use it in GitHub Desktop.
Get Metadata for layers in SOE
private List<string> GetMetadataForLayers()
{
var mapServer = (IMapServer3)_serverObjectHelper.ServerObject; // _serverObjectHelper is an IServerObjectHelper
string defaultMapName = mapServer.DefaultMapName;
var msDataAccess = (IMapServerDataAccess)_serverObjectHelper.ServerObject;
IMapServerInfo3 mapServerInfo = (IMapServerInfo3)mapServer.GetServerInfo(defaultMapName);
IMapLayerInfos layerInfos = mapServerInfo.MapLayerInfos;
List<string> xmlList = new List<string>(layerInfos.Count);
string xml;
IDataset layer;
IMetadata metadata;
IXmlPropertySet2 propSet;
for (int i = 0; i < layerInfos.Count; i++)
{
xml = null;
layer = msDataAccess.GetDataSource(defaultMapName, i) as IDataset;
if (layer != null)
{
metadata = layer.FullName as IMetadata;
if (metadata != null)
{
propSet = metadata.Metadata as IXmlPropertySet2;
if (propSet != null)
{
xml = propSet.GetXml(string.Empty);
}
}
}
xmlList.Add(xml);
}
return xmlList;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment