zoukankan      html  css  js  c++  java
  • arcgis engine 调用arcgis server服务

    首先需要添加两个引用:

    using ESRI.ArcGIS.GISClient;
    using ESRI.ArcGIS.DataSourcesRaster;

            /// <summary>
            /// arcgis engine 调用arcgis server服务
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void 符号是否随比例尺变化ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                //获得服务对象名称
    
                IAGSServerObjectName pServerObjectName = GetMapServer("http://services.arcgisonline.com/ArcGIS/services", "ESRI_Imagery_World_2D", false);
                IName pName = (IName)pServerObjectName;
                //访问地图服务
                IAGSServerObject pServerObject = (IAGSServerObject)pName.Open();
                IMapServer pMapServer = (IMapServer)pServerObject;
    
                ESRI.ArcGIS.Carto.IMapServerLayer pMapServerLayer = new ESRI.ArcGIS.Carto.MapServerLayerClass();
                //连接地图服务
    
                pMapServerLayer.ServerConnect(pServerObjectName, pMapServer.DefaultMapName);
                //添加数据图层
    
                axMapControl1.AddLayer(pMapServerLayer as ILayer);
    
                axMapControl1.Refresh();
            }
            /// <summary>
            /// 获得地图服务的方法,返回IAGSServerObjectName
            /// </summary>
            /// <param name="pHostOrUrl"></param>
            /// <param name="pServiceName"></param>
            /// <param name="pIsLAN"></param>
            /// <returns></returns>
            public IAGSServerObjectName GetMapServer(string pHostOrUrl, string pServiceName, bool pIsLAN)
            {
    
    
                //设置连接属性
                IPropertySet pPropertySet = new PropertySetClass();
                if (pIsLAN)
                    pPropertySet.SetProperty("machine", pHostOrUrl);
                else
                    pPropertySet.SetProperty("url", pHostOrUrl);
    
                //打开连接
    
                IAGSServerConnectionFactory pFactory = new AGSServerConnectionFactory();
                //Type factoryType = Type.GetTypeFromProgID(
                //    "esriGISClient.AGSServerConnectionFactory");
                //IAGSServerConnectionFactory agsFactory = (IAGSServerConnectionFactory)
                //    Activator.CreateInstance(factoryType);
                IAGSServerConnection pConnection = pFactory.Open(pPropertySet, 0);
    
                //Get the image server.
                IAGSEnumServerObjectName pServerObjectNames = pConnection.ServerObjectNames;
                pServerObjectNames.Reset();
                IAGSServerObjectName ServerObjectName = pServerObjectNames.Next();
                while (ServerObjectName != null)
                {
                    if ((ServerObjectName.Name.ToLower() == pServiceName.ToLower()) &&
                        (ServerObjectName.Type == "MapServer"))
                    {
    
                        break;
                    }
                    ServerObjectName = pServerObjectNames.Next();
                }
    
                //返回对象
                return ServerObjectName;
            }
    

      

  • 相关阅读:
    读javascript高级程序设计08-引用类型之Global、Math、String
    读javascript高级程序设计07-引用类型、Object、Array
    读javascript高级程序设计06-面向对象之继承
    读javascript高级程序设计05-面向对象之创建对象
    读javascript高级程序设计04-canvas
    读javascript高级程序设计03-函数表达式、闭包、私有变量
    读javascript高级程序设计02-变量作用域
    C#将Word转换成PDF方法总结(基于Office和WPS两种方案)
    【转】 C#中Finally的一个不太常见的用法
    一看就懂的ReactJs入门教程-精华版
  • 原文地址:https://www.cnblogs.com/xianerwonder/p/4341038.html
Copyright © 2011-2022 走看看