VBA和ArcObject创建定义已知坐标系下的点图层

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

你可能感兴趣的:(VBA和ArcObject创建定义已知坐标系下的点图层)