我将采用python脚本方法作为一个实际的解决方案,但这也可能是一个有趣的使用几何运算的练习。例如
def processfeature(feature):sub=feature.getattribute(“legal_sub”)if sub:s=[]for nums in runs(sorted([int(c)for c in sub.split(',')]):if 2<len(nums):s.append('%s-%s'%(nums[0],nums[-1])否则:s+=[str(n)for n in nums]feature.setattribute('legal_sub','、'.join(s))定义运行(oidlist):
您好!
您可以修改这个python函数,它返回一个列表。
>>>运行([1,2,3,4,7,10,13,14,15,16])
〔1〕2,三,4,〔7〕;〔10〕;〔13〕14,15,16 ] ]
#用于生成OID值运行的函数def runs(oidlist):在oidlist中为OID运行=[]:如果不运行:runs.append([oid])如果运行[-1]==oid-1:runs[-1].append(oid)否则:runs.append([oid])返回runs