# 验证授权
validateLicense() # 这是一个三方脚本,不依赖输入参数
# 验证授权
# 输入要素
infc = arcpy.GetParameterAsText(0)
# 输出文件夹
out_folder = arcpy.GetParameterAsText(1)
# 模板mxd文档
template_mxd_path = arcpy.GetParameterAsText(2) or "CURRENT"
# 分割字段数组
splitFieldsinput = arcpy.GetParameterAsText(3)
if splitFieldsinput:
splitFields = splitFieldsinput.split(";")
else:
splitFields = ""
# 是否需要标注
needlabel = bool(arcpy.GetParameter(4))
上述代码会报错,可能的报错情况如下:
arcgis 封装tbx工具箱的python脚本时,引入第三方脚本,即使第三方脚本不依赖输入参数GetParameterAsText()。运行时也会报错。报错原因为,没有获取到任何输入的参数。
所以需要注意的是:ArcGIS的tbx工具箱python脚本获取参数应当在任何函数运行前,即使函数不依赖于输入参数运行。
正确代码如下:
# 输入要素
infc = arcpy.GetParameterAsText(0)
# 输出文件夹
out_folder = arcpy.GetParameterAsText(1)
# 模板mxd文档
template_mxd_path = arcpy.GetParameterAsText(2) or "CURRENT"
# 分割字段数组
splitFieldsinput = arcpy.GetParameterAsText(3)
if splitFieldsinput:
splitFields = splitFieldsinput.split(";")
else:
splitFields = ""
# 是否需要标注
needlabel = bool(arcpy.GetParameter(4))
# 验证授权
validateLicense()
# 验证授权