Estoy intentando añadir una única capa WMS que forma parte de una capa de grupo de servicios WMS. Estoy escribiendo el código para hacer esto usando ArcObjects en C# .Net. Hasta ahora no he tenido éxito. Sólo puedo añadir la capa de grupo completa, o puedo añadir la subcapa WMS individual, pero el grupo completo también se añade.
Aquí está el código que he probado. He permitido al usuario seleccionar una capa de una lista, y este código está tratando de añadir sólo esa capa seleccionada.
IWMSGroupLayer wmsMapLayer = new WMSMapLayerClass();
IWMSConnectionName connName = new WMSConnectionNameClass();
IPropertySet propSet = new PropertySetClass();
propSet.SetProperty("URL", "http://www.___________________?");
connName.ConnectionProperties = propSet;
IDataLayer dataLayer = (IDataLayer)wmsMapLayer;
dataLayer.Connect((IName)connName);
IWMSServiceDescription serviceDesc = wmsMapLayer.WMSServiceDescription;
IWMSLayerDescription groupDesc = serviceDesc.LayerDescription[0];
for (int i = 0; i < groupDesc.LayerDescriptionCount - 1; i++)
{
IWMSLayerDescription layerDesc = groupDesc.LayerDescription[i];
if (layerDesc.Title == lstWMSLayers.SelectedItem.ToString())//Checking if this is the selected layer
{
ILayer newLayer;
IWMSLayer newWMSLayer = wmsMapLayer.CreateWMSLayer(layerDesc);
newLayer = (ILayer)newWMSLayer;
wmsMapLayer.InsertLayer(newLayer, 0);
IMxDocument mxDoc = (IMxDocument)ArcMap.Application.Document;
mxDoc.FocusMap.AddLayer((ILayer)wmsMapLayer);
IActiveView activeView = (IActiveView)mxDoc.FocusMap;
activeView.Refresh();
}
}
En ArcMap obtengo el siguiente árbol de capas
- Capa del grupo de servicios WMS
- Capa de SGA seleccionada
- Grupo WMS Layer
- Todas las capas que forman parte del servicio...
¿Alguna sugerencia?
0 votos
¿Puede añadir esa capa (y sólo esa capa) a través de la interfaz de usuario de ArcMap?
0 votos
Sí, cuando añado una capa individual a través de ArcMap, obtengo la capa del grupo de servicios WMS, y entonces sólo la capa WMS, nada más. Así que debería ser posible a través de ArcObjects también derecho?