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属性

转载于:https://www.cnblogs.com/tuncaysanli/archive/2009/04/18/1438717.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值