在ArcGIS属性表中增加需要的字段,并自动赋值

在ArcGIS属性表中,一般不会包含实体几何信息,可以采取VBA进行计算。下面是几个简单的代码(转载自集思学院)
特点:
1推荐给不会使用AO的朋友
2可以保存为CAL文件以备下次方便使用

使用方法
1打开属性表,选择计算的字段,右点选择Calculate Values;
2.选择“是”,进入Field Calculator;
2选择Advance选项;
3 在Pre-Logic VBA Script Code编辑框中输入VBA代码;
4在下面编辑框中输入赋值部分.


1--点坐标X
VBA部分:
Dim pGeo As IGeometry
Set pGeo = [Shape]
Dim pPoint As IPoint
Set pPoint = pGeo
赋值部分:
pPoint.X

2--点坐标Y
VBA部分:
同上
赋值部分:
pPoint.Y

坐标值为文件存储的固有值,和是否使用On the Fly坐标表示无关。返回当前显示的坐标值参看8,9

3--多边形周长
VBA部分:
Dim pGeo As IGeometry
Set pGeo = [Shape]
Dim pPolygon As IPolygon
Set pPolygon = pGeo
赋值部分:
pPolygon.Length

4--多边形面积
VBA部分:
Dim pGeo As IGeometry
Set pGeo = [Shape]
Dim pPolygon As IPolygon
Set pPolygon = pGeo
Dim pArea As IArea
Set pArea = pPolygon
赋值部分:
pArea.Area

5--多边形重心X
VBA部分:
Dim pGeo As IGeometry
Set pGeo = [Shape]
Dim pPolygon As IPolygon
Set pPolygon = pGeo
Dim pArea As IArea
Set pArea = pPolygon
Dim pPoint As IPoint
Set pPoint = pArea.Centroid
赋值部分:
pPoint.X

6--多边形重心Y
VBA部分:
同上
赋值部分:
pPoint.Y

7--Polyline长度
VBA部分:
Dim pGeo As IGeometry
Set pGeo = [Shape]
Dim pPolyline As IPolyline
Set pPolyline = pGeo
Dim pCurve As IPolycurve
Set pCurve = pPolyline
赋值部分:
pCurve.Length

8--表示点坐标X
VBA部分:
Dim pDoc As IMxDocument
Set pDoc = ThisDocument
Dim pSpRef As ISpatialReference
Set pSpRef = pDoc.FocusMap.SpatialReference

Dim pClone As IClone
Set pClone = [Shape]
Dim pGeo As IGeometry
Set pGeo = pClone.Clone
Dim pPoint as IPoint
Set pPoint = pGeo

pGeo.Project pSpRef
赋值部分:
pPoint.X

9--表示点坐标Y
VBA部分:
同上
赋值部分:
pPoint.Y

坐标值为On the Fly显示的坐标,不是文件存储的固有坐标

10--连续编号
VBA部分:
Static lCount as long
lCount=lCount+1
赋值部分:
lCount (从1开始)
lCount-1 (从0开始)
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在ArcGIS中,可以使用字段自动赋值功能来创建一个递增数字类型的字段。首先,在编辑模式下打开要素类或格的属性,并选择要自动赋值字段,将其类型设置为自动递增。然后在属性的右上角点击“编辑”按钮,进入字段属性对话框,在自动递增栏中设置初始值和步长(步长通常为1),确定后返回属性。 此时,当你开始编辑该字段时,它会自动获取下一个递增的数字,并提交到数据库中保存。需要注意的是,该功能只适用于可以进行编辑的字段,对于只读或者计算字段无法使用。另外,在一些特殊情况下,如重建空间索引或者删除和创建字段等操作后,自动递增字段可能会出现异常,此时需要手动重新启动自动递增功能。 总之,使用ArcGIS字段自动赋值递增数字功能,可以方便地创建顺序编号、编号牌等需要递增数字的数据,提高数据管理和分析的效率。 ### 回答2: ArcGIS中的字段自动赋值是一种非常实用的功能,可以帮助我们方便地为数据集中的字段赋予连续数字。在ArcGIS中实现自动赋值递增数字的方法,需要自定义属性字段和计算字段两个步骤。 1. 自定义属性字段 在图层属性中,可以为需要自动赋值字段设置属性项,如下图所示。选择需要进行自动赋值字段,点击"递增"(Incrementing)选项,勾选"启用递增"(Enable)选项,并确定递增的方向及起始值,这样就可以为这个字段设定自动递增的属性了。 自定义属性字段 2. 计算字段 接下来,需要计算出自动递增的字段值,将其赋值到相应的字段中。对于这一步骤,可以借助ArcGIS自带的计算字段工具来实现。 在属性表中,右键点击需要自动赋值字段,选择"计算"(Calculate),即可打开计算字段对话框。在计算字段中,需要编写Python达式来实现递增的功能,如下图所示。 计算字段 在计算字段对话框中,可以通过代码编写实现递增字段的公式,比如可以使用“!OBJECTID! + 1”这样的达式,其中OBJECTID示记录的唯一标识符。这样就可以计算出每个记录的自动递增字段值,赋值到相应的字段中。 总体来说,ArcGIS字段自动赋值递增数字功能是一种非常方便的工具。通过自定义属性字段和计算字段两个步骤,可以快速实现递增字段的功能。这样,我们就可以方便地为数据集进行编号,也可以方便地对数据进行排序和过滤,提高数据操作的效率。 ### 回答3: ArcGIS 是一款专业的地理信息系统软件,用于收集、管理、分析和展示地理信息数据。在 ArcGIS 的数据表中有时需要对某一字段进行自动赋值,比如序号、ID 码等,这时就需要用到字段自动递增功能。以下是在 ArcGIS 中进行字段自动递增的具体步骤: 1. 在数据表中创建一个新的字段,比如“序号”字段,设置数据类型为整数型。 2. 在数据表中选中“序号”字段,右键单击,在弹出的菜单中选择“字段计算器”。 3. 在弹出的“字段计算器”对话框中,勾选“使用代码块”,并在代码块内输入以下 Python 代码: blockcode: rec=0 def autoNum(): global rec pStart = 1 #起始值 pInterval = 1 #增加值 if (rec == 0): rec = pStart else: rec += pInterval return rec autoNum() 其中,“pStart”为起始值,“pInterval”为递增值,可以根据需要进行修改。 4. 点击“确定”按钮,ArcGIS自动依次对数据表中的每条记录进行序号自动递增操作。 需要注意的是,在使用字段自动递增功能时,务必仔细核对起始值和递增值,以免出现错误。另外,若删除数据表中的记录,则序号也会随之改变,这是一个需要注意的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值