Scripting en gvSIG: Centrar todas las Vistas de un Proyecto

centrarvistas01Un script muy sencillo y que puede ser muy útil. Ejecutando el código nos recorrerá todo el proyecto que tengamos abierto, Vista a Vista, y hará un zoom o centrar vista a la primera capa que aparezca en cada una de ellas.

Así, de una tirada, podremos tener bien situadas todas las Vistas de un Proyecto.

from gvsig import *

def main():
    #Centrar todas las vistas de un proyecto
    #zoomViews.py / @masquesig

    views = currentProject().getViews()
    for view in views:
      vista = currentProject().getView(str(view))
      layer0 = vista.getLayers()[0]
      env = layer0.getFullEnvelope()
      centrarVistaEnv( vista, env)
      print vista.name," centrada en ", vista.getLayers()[0].name

def centrarVistaEnv(vista,env):
    vista.getMap().getViewPort().setEnvelope(env)

Inicial:

centrarvistas02

Final, después de ejecutarlo:

centrarvistas03

Si quieres realizar el zoom a la extensión total de las capas, en vez de a la primera capa, el código sería el siguiente:

from gvsig import *

def main():
    #Centrar todas las vistas de un proyecto
    #zoomViewsEnvelope.py / @masquesig

    views = currentProject().getViews()
    for view in views:
      vista = currentProject().getView(str(view))
      centrarEnvelope(vista)
      print vista.name," centrada."

def centrarEnvelope(vista):
    envelope = vista.getMap().getLayers().getMapContext().getFullEnvelope()
    vista.getMap().getLayers().getMapContext().zoomToEnvelope(envelope)
1 comentario

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: