如图:
需要将生成两条封闭线,从而构面
使用Arcpy代码如下
scCs = arcpy.da.SearchCursor(dmal, 'SHAPE@') #生成游标对象(dmal为两条边线的shape文件)
lines = [row[0] for row in scCs] #生成线列表
sps = [line.firstPoint for line in lines] #生成起点的列表
eps = [line.lastPoint for line in lines] #生成终点的列表
array = arcpy.Array([point for point in sps]) #建立起点array
sl = arcpy.Polyline(array) #生成起点polyline对象
array = arcpy.Array([point for point in eps]) #建立终点array
el = arcpy.Polyline(array) #生成终点polyline对象
isCs = arcpy.da.InsertCursor(tLine, 'SHAPE@') #建立insert游标(tLine为新建polyLine文件)
isCs.insertRow([sl]) #插入起点线
isCs.insertRow([el]) #插入终点线
完整代码:
#coding=utf-8
import arcpy
def closePolyLines(polyling):
"""
:param polyling: 需要进行封闭的线
:return: 在该线文件同级目录下生成newLine文件
"""
arcpy.env.overwriteOutput = True
filePath = arcpy.Describe(polyling).path
cs1 = arcpy.da.SearchCursor(polyling, 'SHAPE@') # 生成游标对象(polyling为两条边线的shape文件)
lines = [row[0] for row in cs1] # 生成线列表
sps = [line.firstPoint for line in lines] # 生成起点的列表
eps = [line.lastPoint for line in lines] # 生成终点的列表
array = arcpy.Array([point for point in sps]) # 建立起点array
sl = arcpy.Polyline(array) # 生成起点polyline对象
array = arcpy.Array([point for point in eps]) # 建立终点array
el = arcpy.Polyline(array) # 生成终点polyline对象
nl = arcpy.CreateFeatureclass_management(filePath, 'newLine', 'POLYLINE')
nlcs = arcpy.da.InsertCursor(nl, 'SHAPE@')
nlcs.insertRow([sl]) # 插入起点线
nlcs.insertRow([el]) # 插入终点线