漏洞 ID 编号 |
BUG-000151663 |
已提交 | August 18, 2022 |
上次修改时间 | June 5, 2024 |
适用范围 | ArcGIS Pro |
找到的版本 | 3.0 |
操作系统 | N/A |
操作系统版本 | N/A |
状态 | As Designed
经开发团队审核,已确定此行为符合设计。 有关详细信息,请参阅“其他信息”部分。
|
附加信息
Although the keyword 'Current' works the same in the Python window, notebooks, and script tools, the core geoprocessing functions do not return 'arcpy.mp Layer objects'. Instead, it returns 'Result objects', and it is up to the user to use the correct index to return the appropriate object from the result. The code below is modified to return a layer object from the geoprocessing 'Result object', and this works in models, stand-alone scripts, script tools, and the Python window.
p = arcpy.mp.ArcGISProject('current')
m = p.listMaps('Map')[0]
lyr1 = m.listLayers('States_WithRegions')[0]
res = arcpy.management.Merge(['States_WithRegions', 'Provinces'], os.path.join(basePath, 'GPSyncLayers.gdb', 'MergeOutputOpt1'))
resLyr = m.addDataFromPath(res[0])
Note that the geoprocessing tools run from the Python window or notebooks often automatically add layer results to the table of contents. This is a geoprocessing option that can be configured, but it does not automatically add layers if run from a script tool. This is because script tools are designed to work out of process, even if views are not active to add the output to. Use the logic above to more consistently get the expected results.
解决办法
Use the Python Window or notebooks in ArcGIS Pro.
重现步骤