在PyScripter中创建具有特定坐标的新多边形要素类

时间:2013-12-12 16:40:16

标签: geometry coordinates polygon

我正在尝试创建一个包含单个方形多边形的新多边形要素类,其中包含以下坐标:(0,0),(0,1000),(1000,0)和AND(1000,1000),但是我的脚本一直在“ID,X,Y = string.split(line,”“)”行中遇到“VauleError:解压缩的值太多” 这是我脚本的其余部分:

import arcpy
import fileinput
import string
import os
from arcpy import env

env.workspace = "E:/UNIVERSITY/Exercise08"
env.overwriteOutput = True
outpath ="E:/UNIVERSITY/Exercise08"
newfc = "Results/newpolygon.shp"

arcpy.CreateFeatureclass_management(outpath, newfc, "Polygon")
infile = "E:/UNIVERSITY/Exercise08/challengecoordinates.txt"
cursor = arcpy.da.InsertCursor(newfc, ["SHAPE@"])
array = arcpy.Array()
for line in fileinput.input(infile):
    ID, X, Y = string.split(line, " ")
    array.add(arcpy.Point(X, Y))
cursor.insertRow([arcpy.Polygon(array)])
fileinput.close()
del cursor

1 个答案:

答案 0 :(得分:2)

01 0 0 0 1000 1000 1000 1000 0行不会正确解包,在空格上拆分会从该行中生成9个元素的列表,而您只分配3:(id,x,y)。

相反,你应该走线,并将其分解为每个组件所需的部分:

 parts = line.split(" ")
 id = parts[0] # 01
 coord1 = "({},{})".format(parts[1], parts[2]) # 0 0 in input, output (0, 0)
 <...>
 coord4 = "({},{})".format(parts[7], parts[8]) # 1000 0 in input, output (1000, 0)

从那里你应该能够将你的坐标连接到你描述的WKT。

相关问题