我正在开发一个 python 工具箱,以自动执行将数据检出和返回到文件地理数据库所需的步骤。我的问题是,在使用 python 命令行和 ArcPad 数据管理工具而不是 ArcPad 数据管理器时,将检出的功能限制为仅选择的功能的最佳方法是什么?ArcPad 数据管理器中的“仅获取选定的要素”复选框使其变得容易。这很重要,因为我想限制使用区域并减小文件大小,因为要素类之一是大型地块地图。
问问题
425 次
1 回答
0
I do know one way to get selected items by using arcpy only.
#get an map object
mxd = arcpy.mapping.MapDocument("CURRENT")
#get an dataframe object, here the first one is taken
df = arcpy.mapping.ListDataFrames(mxd)[0]
#get a layer object
lyr = arcpy.mapping.ListLayers(mxd,"NameOfRequiredLayer",df)
#now get the FIDs of the selected Elements of your layer
selection = arcpy.Describe(lyr).FIDSet
"selection" then contains the FIDs of selected elements. With that you can carry one with whatever you have to do. For instance you can then set a layers definition query:
#shapes use FID, feature classes use OBJECTID, so you better check
IDname = "\"OBJECTID\""
if lyr.dataSource.endswith("shp"):
IDname = "\"FID\""
querystring = IDname + " = " + str(selection[0])
for count in range(1,len(selection)):
querystring = querystring + " OR " + IDname + " = " + str(selection[count])
if lyr.supports("DEFINITIONQUERY"):
lyr.definitionQuery = querystring
于 2014-10-08T12:25:52.947 回答