Visual Basic para Aplicaciones - DESACTIVAR LAYERS (Help Me!)

Life is soft - evento anual de software empresarial
 
Vista:

DESACTIVAR LAYERS (Help Me!)

Publicado por Braulio (2 intervenciones) el 18/06/2009 04:03:19
Hola:

Soy nuevo en esto de Visual Basic, no soy un programador pero si tengo que ver con el ámbito de la Geomensura y SIG. Debido a esto, es que estoy realizando una aplicacion en ArcGIS plataforma ArcMap, en donde yo activo y desactivo layers de la vista principal. Despues de mucho esfuerzo, he generado un script que activa layers, éste es el sgte:

Private Sub Activa_Click()

Dim pMxDocument As IMxDocument
Dim PREDIO As IMap
Dim pFeatureLayer As IFeatureLayer
Dim pActiveView As IActiveView
Dim pContentsView As IContentsView

' Ingreso a layer
Set pMxDocument = ThisDocument
Set PREDIO = pMxDocument.FocusMap
Set pFeatureLayer = PREDIO.Layer(7)
'
' If the feature layer is not visible,
' then make it visible.
If Not pFeatureLayer.Visible Then
pFeatureLayer.Visible = True
End If

' Refresh the map.
Set pActiveView = PREDIO
pActiveView.Refresh

' Refresh the table of contents.
Set pContentsView = pMxDocument. _
CurrentContentsView
pContentsView.Refresh pFeatureLayer

End Sub

Lo que necesito ahora es hacer el proceso contrario, quiero desactivar layers y no me resulta por ningún medio, ojala uds me puedan ayudar. Como sé programar en avenue, tengo esa lógica muy pegada y visual es diferente, es por eso que necesito que alguien me de una orientación.

De antemano, muchas gracias a todos!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Prueba con esto

Publicado por Nelson (1 intervención) el 08/07/2009 18:09:27
solo tienes que cambiar dos lineas y listo

Private Sub UIButtonControl2_Click()
Dim pMxDocument As IMxDocument
Dim PREDIO As IMap
Dim pFeatureLayer As IFeatureLayer
Dim pActiveView As IActiveView
Dim pContentsView As IContentsView

' Ingreso a layer
Set pMxDocument = ThisDocument
Set PREDIO = pMxDocument.FocusMap
Set pFeatureLayer = PREDIO.Layer(0)
'
' If the feature layer is not visible,
' then make it visible.

'''''''''''el cambio lo haces aqui

If pFeatureLayer.Visible = True Then
pFeatureLayer.Visible = False
End If

' Refresh the map.
Set pActiveView = PREDIO
pActiveView.Refresh

' Refresh the table of contents.
Set pContentsView = pMxDocument. _
CurrentContentsView
pContentsView.Refresh pFeatureLayer

End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Prueba con esto

Publicado por Braulio (2 intervenciones) el 09/07/2009 01:00:36
Ohhh, increible!!!

Me sirvio, muchas gracias por tu gran ayuda... lo prove y corre excelente, eso si que el numero del layer en este caso es 7 por el orden de la vista, asi que te agradezco nuevamente por tu gran ayuda.

Gracias!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar