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;
}
创建矢量文件List<point> to shp
猜你喜欢
转载自blog.csdn.net/Sun_xiangyan/article/details/82256159
今日推荐
周排行