创建矢量文件List<point> to shp

        public IFeatureLayer CreateShpFromPoints(List<PointD> knownPoints, string path)
        {
            string Folder = System.IO.Path.GetDirectoryName(path);
            string shapeName = System.IO.Path.GetFileNameWithoutExtension(path);// + ".shp";
            IWorkspaceFactory WsF = new ShapefileWorkspaceFactoryClass();
            IFeatureWorkspace FWs = (IFeatureWorkspace)WsF.OpenFromFile(Folder, 0);
            Fields fields = new FieldsClass();
            IFieldsEdit FieldsEdit;
            FieldsEdit = (IFieldsEdit)fields;
            IField field = new FieldClass();
            IFieldEdit fieldEdit = (IFieldEdit)field;
            fieldEdit.Name_2 = "Shape";
            fieldEdit.Type_2 = esriFieldType.esriFieldTypeGeometry;
            IGeometryDef geometryDef = new GeometryDefClass();
            IGeometryDefEdit gDefEdit = (IGeometryDefEdit)geometryDef;
            gDefEdit.GeometryType_2 = esriGeometryType.esriGeometryPoint;
            //定义坐标系
            ISpatialReferenceFactory srf = new SpatialReferenceEnvironmentClass();
            ISpatialReference spatialReference = srf.CreateGeographicCoordinateSystem((int)esriSRGeoCSType.esriSRGeoCS_Beijing1954);
            gDefEdit.SpatialReference_2 = spatialReference;
            fieldEdit.GeometryDef_2 = geometryDef;
            FieldsEdit.AddField(field);
            IFeatureClass featureClass;
            featureClass = FWs.CreateFeatureClass(shapeName, fields, null, null, esriFeatureType.esriFTSimple, "Shape", "");
            IPoint xjPoint = new PointClass();
            for (int j = 0; j < knownPoints.Count; j++)
            {
                xjPoint.X = knownPoints[j].X;
                xjPoint.Y = knownPoints[j].Y;
                IFeature feature = featureClass.CreateFeature();
                feature.Shape = xjPoint;
                feature.Store();
            }
            IFeatureLayer featureLayer = new FeatureLayerClass();
            featureLayer.Name = shapeName;
            featureLayer.FeatureClass = featureClass;
            return featureLayer;
        }

猜你喜欢

转载自blog.csdn.net/Sun_xiangyan/article/details/82256159
今日推荐