课本_第十二章、批量出图自定义工具
1 # coding:utf-8
2 import arcpy
3 import arcpy.mapping as mp
4 # path = ur"E:\桌面文档\C_课本arcpy开发\第12章批量出图自定义工具\test.mxd"
5 # mxd = mp.MapDocument(path)
6 mxd = mp.MapDocument("CURRENT")
7 adf = mxd.activeDataFrame #整理如何得到 adf
8 # lyrs = mp.ListLayers(mxd)
9 # lyr= lyrs[0]
10 lyr = arcpy.GetParameter(0) #总结获取 lyr 的方法
11 # outFolder = ur"E:\桌面文档\C_课本arcpy开发\第12章批量出图自定义工具\out"
12 outFolder = arcpy.GetParameterAsText(1)
13
14 def exportJpgByFid(fid):
15 lyr.setSelectionSet("NEW",[fid])
16 adf.zoomToSelectedFeatures()
17 arcpy.RefreshActiveView()
18 mxd_jpg = ur'{}\{}.jpg'.format(outFolder,fid) #format函数的使用
19 mp.ExportToJPEG(mxd,mxd_jpg)
20 result = arcpy.GetCount_management(lyr)
21 count = int(result.getOutput(0))
22 for fild in range(count):
23 exportJpgByFid(fild)
一、arcgis中编辑工具的选择和配置
编辑工具有 : PySpinder 和 Pycharm
推荐使用 PySpinder 进行脚本工具的编写
原因:
1、pycharm 编写的代码在导入脚本工具,进行解析时;会出现代码行与解释行重合的情况,在使用Spinder打开时可以清楚的看见
2、Spinder 可以实现在 arcmap 内对脚本工具进行编辑
二、如何得到 adf
1 import arcpy as ap
2 import arcpy.mapping as mp
3 mxd = mp.Mapdocument('CURRENT')
4 adf = mxd.activeDataFrame
三、如何得到 lyr
lyrs = mp.ListLayers(mxd)
lyr = lyrs[0]
四、Python中 format 函数的使用(格式化字符串)
1、用于传参数
2、用于修改输出的数字格式
五、arcgis脚本工具传参为路径时,接收参数的方式
arcpy.GetParameterAsText(index)
#通过GetParameterAsText获取的字符串,不需要进行encode或deconde等转码操作
六、Python中编码和转码操作
若要将某个String对象s从gbk内码转换为UTF-8
s.decode('gbk', ‘ignore').encode('utf-8′)
七、解读代码
class AssignValue(object):
def __init__(self, value):
self.value = value
my_value = AssignValue(6)
print('value 为: {0.value}'.format(my_value))
这是一个Python类,名为AssignValue。它有一个初始化方法init 以及一个变量value。当使用这个类来创建一个实例时,实例会被初始化并赋一个数值。在这个例子里,一个名为my_value的实例被创建并赋值为6。
通过使用字符串格式化的方法,输出了my_value的value属性的值。在这里,{0.value}指的是my_value实例的value属性。这个属性的值是6,所以输出结果是'value 为: 6'。
关于 init函数,看这里(赋值给对象属性)
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)