分別創建點,線,面圖層的代碼,速求
uj5u.com熱心網友回復:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS.DataSourcesFile;
using ESRI.ArcGIS.DataSourcesGDB;
using ESRI.ArcGIS.Display;
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.Output;
using ESRI.ArcGIS.SystemUI;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// 確定
private void button1_Click(object sender, EventArgs e)
{
// 創建點圖層
IFeatureClass pPointFeatureClass = CreateShapefile(@"E:\Users\DSF\Desktop\point.shp", esriGeometryType.esriGeometryPoint);
// 創建線圖層
IFeatureClass pPolylineFeatureClass = CreateShapefile(@"E:\Users\DSF\Desktop\polyline.shp", esriGeometryType.esriGeometryPolyline);
// 創建面圖層
IFeatureClass pPolygonFeatureClass = CreateShapefile(@"E:\Users\DSF\Desktop\polygon.shp", esriGeometryType.esriGeometryPolygon);
}
// 創建shp檔案
private IFeatureClass CreateShapefile(string filePath, esriGeometryType geometryType)
{
ISpatialReferenceFactory pSpatialReferenceFactory = new SpatialReferenceEnvironment();
IGeographicCoordinateSystem pGeographicCoordinateSystem = pSpatialReferenceFactory.CreateGeographicCoordinateSystem((int)esriSRGeoCSType.esriSRGeoCS_WGS1984);
// 幾何型別
IGeometryDef pGeometryDef = new GeometryDef();
IGeometryDefEdit pGeometryDefEdit = pGeometryDef as IGeometryDefEdit;
pGeometryDefEdit.GeometryType_2 = geometryType;
pGeometryDefEdit.HasM_2 = false;
pGeometryDefEdit.HasZ_2 = false;
pGeometryDefEdit.SpatialReference_2 = pGeographicCoordinateSystem;
// 欄位集合
IFields pFields = new Fields();
IFieldsEdit pFieldsEdit = pFields as IFieldsEdit;
// Shape欄位
IField pField = new Field();
IFieldEdit pFieldEdit = pField as IFieldEdit;
pFieldEdit.Type_2 = esriFieldType.esriFieldTypeGeometry;
pFieldEdit.GeometryDef_2 = pGeometryDef;
pFieldEdit.AliasName_2 = "Shape";
pFieldEdit.Name_2 = "Shape";
pFieldEdit.IsNullable_2 = false;
pFieldEdit.Required_2 = true;
pFieldsEdit.AddField(pField);
// A欄位
pField = new Field();
pFieldEdit = pField as IFieldEdit;
pFieldEdit.Type_2 = esriFieldType.esriFieldTypeString;
pFieldEdit.AliasName_2 = "A";
pFieldEdit.Name_2 = "A";
pFieldEdit.Length_2 = 254;
pFieldsEdit.AddField(pField);
// 創建shp
IWorkspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactory();
IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(System.IO.Path.GetDirectoryName(filePath), 0);
IFeatureWorkspace pFeatureWorkspace = pWorkspace as IFeatureWorkspace;
return pFeatureWorkspace.CreateFeatureClass(System.IO.Path.GetFileName(filePath), pFields, null, null, esriFeatureType.esriFTSimple, "Shape", "");
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/138653.html
標籤:C#
下一篇:有關OPC UA的問題
