使用ArcPy旋转改变符号(已编辑)

161
4
12-10-2022 07:13 PM
状态:在考虑
标签(1)
芽
通过
定期捐助者III

编辑

当使用ArcPy创建特性层时:

似乎没有办法通过旋转改变符号使用ArcPy。

可以添加该功能吗?

相关:ArcPy脚本转换层为每个符号类的单独特征层
//www.gobook3.com/t5/arcgis-pro-sdk-questions/customize-pro-ui-checkboxes-in-toc-to-toggle/..。

标签(2)
4评论
DanPatterson
通过 尊敬的贡献者

Symbol-ArcGIS Pro |文档


(读和写)
获取和设置点符号的旋转值。

JohannesLindner

这个问题有点不清楚。

是的,有一个象征。角, but that sets the angle value of each symbol.

什么@Bud意思是没有办法在arcpy通过旋转改变符号- arcgis Pro |文档

JeffBarrette
通过 金宝搏吧
状态变为:在考虑

这是我们可以考虑的事情,但我们还需要很长时间才能通过精心策划的API提供这种级别的细节。与此同时,国际监测协调员可能是一种选择。在查看下面的代码之前,可能有必要查看Python CIM Access帮助主题:

https://pro.arcgis.com/en/pro-app/latest/arcpy/mapping/python-cim-access.htm

我从:

BEFORE_UI.PNG

正如上面的主题所建议的,我创建了一个before和after图层,将它们保存到LYRX文件中,并比较JSON的差异。

JSON_Difference.PNG

下面是基于上面所看到的代码。前一层没有应用可视化变量,所以我必须创建适当的CIM对象,将值设置为与上面相匹配,然后将新创建的可视化变量应用到与该层相关的空可视化变量列表。

p = arcpy.mp.ArcGISProject('current') m = p.l stmaps ('Map')[0] l = m.l stlayers ('*BEFORE')[0] maxLabel = 360 #这可以自动#通过CIM l_cim = l.g tdefinition ('V3') visVar = arcpy.cim创建一个旋转可视变量。CreateCIMObjectFromClassName('CIMRotationVisualVariable', 'V3') #Xinfo visar . visualvariableinfox . randommax = maxLabel visar . visualvariableinfox . visualvariableinfotype = "None" #Yinfo visar . visualvariableinfox . randommax = maxLabel visalvariableinfoz . visualvariableinfoz . visualvariableinfotype = "None" #Zinfo visar . visualvariableinfoz . randommax = maxLabel visalvariableinfoz . visualvariableinfotype = "Expression" #为Xinfo创建表达式expInf = arcpy.cim。CreateCIMObjectFromClassName('CIMExpressionInfo', 'V3')title = "Custom" expInf. "表达式= "$feature. "#名为rotate expInf的字段。visVar. visualvariableinfoz . valueexpressioninfo = expInf visVar. returnType = "Default"rotationTypeZ = "算术" l_cim.renderer. visualvariables .append(visVar) #应用可视变量l.setDefinition(l_cim) #设置回层

最后的结果是:

AFTER_UI.PNG

我希望这有帮助,

Jeff -布局和arcpy。议员团队

JohannesLindner

谢谢你,杰夫,你帮了大忙。

我已经使用CIM做了一些工作(特别是配置弹出窗口),但是我还没有深入研究它的符号。