添加已加载shp文件的字段值转为List<Point>

        public List<PointD> AddfieldsValueToPointD(int layerNum)
        {
            List<PointD> points = new List<PointD>();
            ILayer layer = null;
            layer = axMapControl1.Map.get_Layer(layerNum);
            IFeatureLayer featureLayer = layer as IFeatureLayer;
            IFeatureClass featureclass = featureLayer.FeatureClass;
            IFields fields = featureclass.Fields;
            IFeatureCursor pFeatureCursor;
            pFeatureCursor = featureLayer.FeatureClass.Search(null, false);
            IFeature pFeature= pFeatureCursor.NextFeature();
            int pointNameIndex = pFeature.Fields.FindField("pointName");
            int YIndex = pFeature.Fields.FindField("Y");
            int XIndex = pFeature.Fields.FindField("X");
            while (pFeature != null)
            {
                PointD point = new PointD();
                
                point.pointName = pFeature.get_Value(pointNameIndex).ToString();
                point.X = Convert.ToDouble(pFeature.get_Value(XIndex).ToString());
                point.Y = Convert.ToDouble(pFeature.get_Value(YIndex).ToString());
                points.Add(point);
                pFeature = pFeatureCursor.NextFeature();
            }
            return points;
        }

 public struct PointD
        {
            public double X;
            public double Y;
            public string pointName;
        }

猜你喜欢

转载自blog.csdn.net/Sun_xiangyan/article/details/82259481