ArcGIS->Macros中定义tt()
Sub tt()
Const strFolder As String = "D:/shp"
Const strName As String = "MyShapeFile" ' 不要加Shp后缀
Const strShapeFieldName As String = "Shape"
' 打开用来放置ShapeFile文件的目录作为一个WorkSpace
Dim pFWS As IFeatureWorkspace
Dim pWorkspaceFactory As IWorkspaceFactory
Set pWorkspaceFactory = New ShapefileWorkspaceFactory
Set pFWS = pWorkspaceFactory.OpenFromFile(strFolder, 0)
' 设置一个简单的字段集合对象
Dim pFields As IFields
Dim pFieldsEdit As IFieldsEdit
Set pFields = New Fields
Set pFieldsEdit = pFields
Dim pField As IField
Dim pFieldEdit As IFieldEdit
' 创建一个Shape字段,它需要一个Geometry定义和空间引用对象
Set pField = New Field
Set pFieldEdit = pField
pFieldEdit.Name = strShapeFieldName
pFieldEdit.Type = esriFieldTypeGeometry
'定义Geometry属性和空间引用
Dim pGeomDef As IGeometryDef
Dim pGeomDefEdit As IGeometryDefEdit
Dim pSpatialReferenceFactory As ISpatialReferenceFactory
Set pSpatialReferenceFactory = New SpatialReferenceEnvironment
Set pGeomDef = New GeometryDef
Set pGeomDefEdit = pGeomDef
With pGeomDefEdit
.GeometryType = esriGeometryPoint
Set .SpatialReference = pSpatialReferenceFactory.CreateGeographicCoordinateSystem(4326)
End With
Set pFieldEdit.GeometryDef = pGeomDef
pFieldsEdit.AddField pField
' 添加其它字段
Set pField = New Field
Set pFieldEdit = pField
With pFieldEdit
.Length = 8
.Name = "MiscText"
.Type = esriFieldTypeString
End With
pFieldsEdit.AddField pField
'创建Shape文件,一些用于GeoDatabase的可选参数可以设置为Nothing
Dim pFeatClass As IFeatureClass
Set pFeatClass = pFWS.CreateFeatureClass(strName, pFields, Nothing, Nothing, esriFTSimple, strShapeFieldName, "")
End Sub