• 转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;
  • 相关阅读:
    DFS
    关于memset

    SpringCloud(六)Ribbon负载均衡
    每日算法练习(2020-1-27)
    SpringCloud(五)Eureka Server高可用集群与常见问题
    SpringCloud(四)Eureka服务注册与发现
    SpringCloud(三)常用系统架构技术讲解
    Redis(八)
    Redis(七)
  • 原文地址:https://www.cnblogs.com/bobzhangfw/p/2293858.html
Copyright © 2020-2023  润新知