前几天,自己在做土地项目时候,有个需求,就是想依据要Feature的shape_Area字段进行重新连续自动编号,在这里自己也学习了有时候网上说的VBA,static Icount as long Icount=Icount+1,这个有时候不成功,后来发现网上有人说是因为这是依据你的feature的FId或者ObjectId吧,来进行排序的,这也算是解决我的疑惑。再说,现在ARcMap10.1弃用了VBA,所以自己按照网上说的,自己动手进行了实验,发现实现了我自己的需求,现在我整理一下,供大家一起学习一下。。
import arcpy
# Create update cursor for feature class
# 第一参数是你的feature地址,最后一个是你要依据排序的字段,其他的参见arcmap的 py吧。。
rows = arcpy.UpdateCursor("C:/Users/Administrator/Desktop/15号/Export_Output.shp","","","","SHAPE_Area")
i = 0
for row in rows:
# 从表中的字段可以从行对象动态访问。
i += 1
#row.tt = i
#BH是你想要自动连续编号的字段。注意数据类型
row.setValue("BH", i)
rows.updateRow(row)
print (row.getValue("SHAPE_Area"))
import arcpy
# Create update cursor for feature class
# 第一参数是你的feature地址,最后一个是你要依据排序的字段,其他的参见arcmap的 py吧。。
rows = arcpy.UpdateCursor("C:/Users/Administrator/Desktop/15号/Export_Output.shp","","","","SHAPE_Area")
i = 0
for row in rows:
# 从表中的字段可以从行对象动态访问。
i += 1
#row.tt = i
#BH是你想要自动连续编号的字段。注意数据类型
row.setValue("BH", i)
rows.updateRow(row)
print (row.getValue("SHAPE_Area"))
print "成功连续编号!"