zoukankan      html  css  js  c++  java
  • ArcGIS Server中判断点是否在多边形内

                        // 判断点pt落在哪个多边形内

                       ESRI.ArcGIS.ADF.Identity id = new ESRI.ArcGIS.ADF.Identity();
                        id.UserName =  "Administrator" ;           

                          id.Password = "123456";
                        id.Domain = "gis2_trq";
                        string domainstr = "10.150.38.34";

                        ESRI.ArcGIS.ADF.Connection.AGS.AGSServerConnection agsconn = new ESRI.ArcGIS.ADF.Connection.AGS.AGSServerConnection(domainstr, id);
                        agsconn.Connect();
                        if (!agsconn.IsConnected)
                        {
                            agsconn.Dispose();
                            return "";
                        }
                        ESRI.ArcGIS.Server.IServerObjectManager som = agsconn.ServerObjectManager;
                        string servertype = "MapServer";

                        string serverobjectname2 = "MapRs";
                        ESRI.ArcGIS.Server.IServerContext sc2 = som.CreateServerContext(serverobjectname2, servertype);
                        IMapServer pMapServer2 = sc2.ServerObject as IMapServer;
                        IMapServerObjects pMapServerObjs2 = pMapServer2 as IMapServerObjects;
                        IMap pMap2 = pMapServerObjs2.get_Map(pMapServer2.DefaultMapName);
                       
                        ICompositeLayer pCLayer2 = pMap2.get_Layer(3) as ICompositeLayer;
                        IFeatureLayer pFLayer2 = pCLayer2.get_Layer(2) as IFeatureLayer;
                        IFeatureClass pFeatureClass2 = pFLayer2.FeatureClass;

                        ESRI.ArcGIS.Geodatabase.IQueryFilter qFilter2 = sc.CreateObject("esriGeodatabase.QueryFilter") as           ESRI.ArcGIS.Geodatabase.QueryFilter;
                        qFilter2.WhereClause = null;

                        IFeatureCursor fCursor2 = pFeatureClass2.Search(qFilter2, true);
                        IFeature feature2;
                        string CountryName=String.Empty;
                        ESRI.ArcGIS.Geometry.IPolygon polygon  = null;
                        while ((feature2 = fCursor2.NextFeature()) != null)
                        {
                            polygon = feature2.Shape as ESRI.ArcGIS.Geometry.IPolygon;
                            ESRI.ArcGIS.Geometry.IRelationalOperator pRelOperator = polygon as ESRI.ArcGIS.Geometry.IRelationalOperator;
                            if (pRelOperator.Contains(pt))
                            {
                                CountryName = feature2.get_Value(1).ToString();
                            }
                        }

                     //获得的CountryName 即为点pt所在的多边形的name属性

    一起学习GIS及其二次开发,一起进步!
  • 相关阅读:
    CentOs 安装 Mysql
    安装 CentOs 系统 及 Python 及 Scrapy 框架
    对IOC的理解
    SQL语句优化 -- 以Mysql为例
    探讨 java中 接口和对象的关系
    Java中组合 设计技巧 实例
    【题解】Arpa's letter-marked tree and Mehrdad's Dokhtar-kosh paths Codeforces 741D DSU on Tree
    【题解】Tree-String Problem Codeforces 291E AC自动机
    【题解】打地鼠 SDOI2011 模拟 行列无关
    【题解】新型城市化 HAOI2017 网络流 二分图最大匹配 强连通分量
  • 原文地址:https://www.cnblogs.com/tuncaysanli/p/1438717.html
Copyright © 2011-2022 走看看