zoukankan      html  css  js  c++  java
  • C#中winform下利用ArcEngine调用ArcGIS Server发布的服务

    来自:http://blog.sina.com.cn/s/blog_5d25ac4e0100yncl.html

    主要使用了AE中的IAGSServerOject接口及IMapServer接口。
    Private void GetServerTest_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();
            }

     

     

     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;
            }
    VS2008+AE9.3下编译通过

  • 相关阅读:
    LeetCode 121. Best Time to Buy and Sell Stock
    LeetCode 221. Maximal Square
    LeetCode 152. Maximum Product Subarray
    LeetCode 53. Maximum Subarray
    LeetCode 91. Decode Ways
    LeetCode 64. Minimum Path Sum
    LeetCode 264. Ugly Number II
    LeetCode 263. Ugly Number
    LeetCode 50. Pow(x, n)
    LeetCode 279. Perfect Squares
  • 原文地址:https://www.cnblogs.com/gisoracle/p/2358809.html
Copyright © 2011-2022 走看看