前言
自动计算编码是在ArcGIS中比较常见的需求,实际工作中,我们的需求可能更多,可能需要在编码前多加几个零,或者在前面加上行政编码。本文就这些功能如何实习给出解决方案。
一、方法一:简单方式
rec=0
def Increment():
global rec
Start = 1 #初始值
Interval = 1 #间隔值
if (rec == 0):
rec = Start
else:
rec = rec + Interval
return rec
字段=
Increment()
1、前面加零
字段=(前面五个零)
(str(Increment())).zfill(5)
2、加行政代码
如果要加行政代码的话可以这样:
(str(Increment())).zfill(5)+431121
二、方法二:改进
rec=0
def Increment(Start = 1,Interval = 1):
global rec
if (rec == 0):
rec = Start
else:
rec = rec + Interval
return rec
字段=
(str(Increment(a,b))).zfill(c)
a,b,c都要是数字,a表示从那个开始编码,b表示编码的间隔,c表示几位数,例如
如果a=1,b=1,c=1的话,编码会是1,2,3,4,5,6。
如果a=2,b=1,c=1的话,编码会是2,3,4,5,6,7。
如果a=1,b=2,c=1的话,编码会是1,3,5,7,9,11。
如果a=1,b=1,c=2的话,编码会是01,02,03,04,05,06。
在python里面的界面
三、方法三:最简洁的方式
rec=0
def Increment(Start = 1,Interval = 1):
global rec
rec = Start if (rec == 0) else rec + Interval
return rec
字段=
(str(Increment(a,b))).zfill(c)
a,b,c都要是数字,a表示从那个开始编码,b表示编码的间隔,c表示几位数,例如
如果a=1,b=1,c=1的话,编码会是1,2,3,4,5,6。
如果a=2,b=1,c=1的话,编码会是2,3,4,5,6,7。
如果a=1,b=2,c=1的话,编码会是1,3,5,7,9,11。
如果a=1,b=1,c=2的话,编码会是01,02,03,04,05,06。