private List <string> getXZQMC(IGeometry tfGeometry, IFeatureClass xzq_xianFC, string xzq_xian_field) { List <string> res = new List <string>(); //GeoPageLayoutFn.drawPolygonElement(tfGeometry, pAxMapControl.ActiveView.GraphicsContainer);//测试用 IRelationalOperator pRO = tfGeometry as IRelationalOperator; IFeatureCursor pFCursor = xzq_xianFC.Search(null, false); IFeature pFeature = pFCursor.NextFeature(); int idx = pFeature.Fields.FindField(xzq_xian_field); while (pFeature != null) { IGeometry pGm = pFeature.ShapeCopy; if (pRO.Relation(pGm, "RELATE(G1,G2,'T********')"))//(pRO.Within(pGm) || pRO.Overlaps(pGm)怀疑此方法有问题 || pRO.Contains(pGm)) { //GeoPageLayoutFn.drawPolygonElement(pGm, pAxMapControl.ActiveView.GraphicsContainer);//测试用 res.Add(ModGetData.getXZQMC(pFeature.get_Value(idx).ToString())); } pFeature = pFCursor.NextFeature(); } //pAxMapControl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);//测试用 return(res); }