zoukankan      html  css  js  c++  java
  • 转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;
  • 相关阅读:
    HAL驱动的串口编程陷阱
    ST推出新软件STM32Cube ,让STM32微控制器应用设计变得更容易、更快、更好用
    零宽断言 -- Lookahead/Lookahead Positive/Negative
    Eclipse 正则表达式 查找与替换
    MSDN WinUSB Example
    培训SQLServer 嵌套事务PPT分享
    SQL Server数据库备份的镜像
    禁用nested loop join里的spool
    日常办公工具利器 notepad++
    Change the Target Recovery Time of a Database (SQL Server) 间接-checkpoints flushcache flushcache-message
  • 原文地址:https://www.cnblogs.com/bobzhangfw/p/2293858.html
Copyright © 2011-2022 走看看