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;
  • 相关阅读:
    Kvm --01 虚拟化基础概念
    Git--09 创建Maven项目
    Git--08 Jenkins
    Git--07 Gitlab备份与恢复
    Git --06 Git-gui安装
    Git --05 Gitlab使用
    Git--04 Github使用
    socket 释放全过程
    动态规划习题总结
    linux heap堆分配
  • 原文地址:https://www.cnblogs.com/bobzhangfw/p/2293858.html
Copyright © 2011-2022 走看看