Más

¿Cómo hacer un cambio a la capa en ArcMap con python / ArcObjects?

¿Cómo hacer un cambio a la capa en ArcMap con python / ArcObjects?


En ArcMap 10.1 desde la ventana de Python, estoy intentando rotar un símbolo para un punto. Después de ejecutar mi código, puedo ver las propiedades del símbolo y la expresión de rotación se establece en el símbolo, sin embargo, el símbolo en el marco de datos no se gira.

¿Qué me falta para obtener los puntos en el marco de datos para mostrar el punto girado?

(También vale la pena señalar que si hago clic en "Aceptar" en el generador de expresiones y giro las ventanas, luego hago clic en "Aplicar" en la ventana de propiedades de la capa, luego en "Aceptar", los símbolos se muestran en el marco de datos correctamente)

importar snippets101 como snippets snippets.GetStandaloneModules () snippets.GetDesktopModules () importar comtypes.gen.esriCarto como esriCarto importar comtypes.gen.esriFramework como esriFramework importar comtypes.gen.esriArcMapUI como stapUgenArcModules .esriDisplay como esriDisplay desde snippets101 importar CType desde snippets101 importar NewObj pApp = snippets.GetCurrentApp () pMxDoc = CType (pApp.Document, esriArcMapUI.IMxDocument) pMap = pMxDoc.apFocus = CT pMxDoc.FocusMap.Layer (0), esriCarto.IFeatureLayer) pGeoFeatureLayer = CType (pFeatureLayer, esriCarto.IGeoFeatureLayer) pRotationRenderer = CType (pGeoFeatureLayer.Renderer, esriCarto.IRotationRenderer2) pRotationRenderer.SetSymbolRotation3DFlags = (4) pRotationRenderer.SetSymbolRotation3DExpressions ( "", '[SDO_ORIENTATION] * -1') pRotationRenderer.SymbolRotation3DRotationTypeZ = 0 pAV.refresh ()

No estaba configurando SymbolRotation3DFlags correctamente.

pRotationRenderer.SetSymbolRotation3DFlags = (4)

debería haber sido:

pRotationRenderer.SetSymbolRotation3DFlags (0,0,4)

No estableció (aplicó) la propiedad de renderizador para la interfaz IGeoFeatureLayer.

pGeoFeatureLayer.Renderer = pRotationRenderer