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及其二次开发,一起进步!
  • 相关阅读:
    hadoop项目放在tomcat服务器中遇见的问题
    hadoop-hdfs间文件复制
    fastdfs扩容
    mysql-8.0修改密码方式
    同一个服务器启动两个redis服务记录!
    springboot+vue完美跨域 解决sessionId不一致问题
    docker 拉取fastDFS镜像
    共享锁、排他锁、互斥锁、悲观锁、乐观锁、行锁、表锁、页面锁、不可重复读、丢失修改、读脏数据
    linux下后台运行node-js项目
    概念解释:分组密码、流密码、对称密码、非对称密码
  • 原文地址:https://www.cnblogs.com/tuncaysanli/p/1438717.html
Copyright © 2011-2022 走看看