转AE创建WMS图层的两种方式

IPropertySet pPropertyset = new PropertySetClass();
            pPropertyset.SetProperty("url", "http://localhost/arcgis/services/wmssde/MapServer/WMSServer?");
            IWMSConnectionName pWmsConnectionName = new WMSConnectionNameClass();
            pWmsConnectionName.ConnectionProperties = pPropertyset;

第一种方式:
            ILayerFactory pLayerFactory = new EngineWMSMapLayerFactoryClass();
            if (pLayerFactory.get_CanCreate(pWmsConnectionName))
            {
                IEnumLayer pEnumLayer = pLayerFactory.Create(pWmsConnectionName);
                pEnumLayer.Reset();
                ILayer pLayer = pEnumLayer.Next();
                while (pLayer != null)
                {
                    if (pLayer is IWMSMapLayer)
                    {
                        IWMSMapLayer pWmsMapLayer = pLayer as IWMSMapLayer;
                        IWMSGroupLayer pWmsGroupLayer = pWmsMapLayer as IWMSGroupLayer;
                        IGroupLayer pGroupLayer = new GroupLayerClass();
                        pGroupLayer.Name = "市政务信息图层";
                        pGroupLayer.Add(pLayer);
                        this.axMapControl1.AddLayer(pGroupLayer as ILayer);
                    }
                    pLayer = pEnumLayer.Next();
                }
            }

第二种方式:
            IWMSGroupLayer pWmsMapLayer = new WMSMapLayerClass();
            IDataLayer pDataLayer = pWmsMapLayer as IDataLayer;
            pDataLayer.Connect(pWmsConnectionName as IName);
            IWMSServiceDescription pWmsServiceDesc = pWmsMapLayer.WMSServiceDescription;
            for (int i = 0; i < pWmsServiceDesc.LayerDescriptionCount; i++)
            {
                IWMSLayerDescription pWmsLayerDesc = pWmsServiceDesc.get_LayerDescription(i);
                ILayer pNewLayer = null;
                if (pWmsLayerDesc.LayerDescriptionCount == 0)
                {
                    IWMSLayer pWmsLayer = pWmsMapLayer.CreateWMSLayer(pWmsLayerDesc);
                    pNewLayer = pWmsLayer as ILayer;
                }
                else
                {
                    IWMSGroupLayer pWmsGroupLayer = pWmsMapLayer.CreateWMSGroupLayers(pWmsLayerDesc);
                    pNewLayer = pWmsGroupLayer as ILayer;
                }
                pWmsMapLayer.InsertLayer(pNewLayer, 0);
            }
            ILayer pLayer = pWmsMapLayer as ILayer;
            pLayer.Name = pWmsServiceDesc.WMSTitle;
            this.axMapControl1.AddLayer(pLayer);
附得到WMSConnection的代码:
            //ITrackCancel pTrackCancel = new CancelTrackerClass();
            //object objVal = pWmsConnectionName.OpenEx(null);
            //IWMSConnection pWmsConnection = objVal as IWMSConnection;
            //IWMSServiceDescription pWmsServiceDesc = pWmsConnection as IWMSServiceDescription;
原文地址:https://www.cnblogs.com/bobzhangfw/p/2293858.html