[Gvsig_usuarios] Script tamaño de ventana de vista

Oscar Martinez omartinez en gvsig.com
Vie Jul 28 09:41:26 CEST 2017


Buenas,

Para estos trozos de código que cumplen una función estamos empezando a 
usar la web de Github - Gist. Te animo a crearte un ususario y a 
publicar ahí tu trozo de código y en la descripción añade la etiqueta de 
#gvSIG.

El objetivo es que aparezcan en el siguiente enlace: 
https://gist.github.com/search?utf8=%E2%9C%93&q=gvsig

Saludos y gracias por compartir :)


El 26/07/2017 a las 13:10, sinorfavela escribió:
> Buenas,
>
> Con muchísimo retraso me he dado cuenta de que no te había enviado este
> script con el que me ayudásteis, por si consideras subirlo al repositorio.
>
> El script hace una captura de pantalla de todos los elementos de la capa
> actual.
>
> Script >>
>
> #---------><-- inicio de script --><-----------------
>
> from gvsig import *
> from commonsdialog import *
> from geom import *
> from com.sun.jimi.core import Jimi
> from org.gvsig.app import ApplicationLocator
>
> import time
>
> def centrarEnPunto(mapcontext, punto):
>        # Obtenemos la extension actual del mapa que se esta visualizando
>        envelope = mapcontext.getViewPort().getAdjustedEnvelope()
>        
>        # Calculamos cuanto hay que desplazarlo para que este centrado en el
> punto que indicamos
>        movX = punto.getX()-envelope.getCenter(0)
>        movY = punto.getY()-envelope.getCenter(1)
>
>        # Calculamos las nuevas "esquinas" del encuadre que queremos tener.
>        minx = envelope.getLowerCorner().getX() + movX;
>        miny = envelope.getLowerCorner().getY() + movY;
>        maxX = envelope.getUpperCorner().getX() + movX;
>        maxY = envelope.getUpperCorner().getY() + movY;
>
>        # Creamos el nuevo encuadre
>        newenvelope = GeometryLocator.getGeometryManager().createEnvelope(
>              minx, miny,
>              maxX, maxY,
>              Geometry.SUBTYPES.GEOM2D);
>        # Asignamos el nuevo encuadre
>        mapcontext.getViewPort().setEnvelope(newenvelope);
>
> def main(*args):
>    application = ApplicationLocator.getManager()
>    docvista = currentView()
>    capa = currentLayer()
>    if docvista == None:
>      msgbox("Debera tener activa una vista")
>      return
>    if capa == None:
>      msgbox("Debera tener activa una capa con geometrias seleccionadas")
>      return
>      
>    docwin = application.getDocumentWindow(docvista())
>    n = 1
>    for f in capa.features():
>      # Seleccionamos el elemento para que salga seleccionado en la imagen
>      capa.getSelection().deselectAll()
>      capa.getSelection().select(f)
>      # Centramos la vista en la geometria asociada al elemento seleccionado.
>      centrarEnPunto(docvista.getMapContext(), f.geometry().centroid() )
>      # Esperamos un par de segundos a que se termine de pintar la vista.
>      time.sleep(2)
>      # Obtenemos la imagen de la vista
>      img = docwin.getMapControl().getImage()
>      pathname = "C:\\Users\\fmgm\\Desktop/kk/Barrios/Barrios%02d.png" % n
>      #msgbox(pathname)
>      Jimi.putImage(img,pathname)
>      n += 1
>    
> #---------><-- fin de script --><-----------------
>
>
>
> --
> View this message in context: http://osgeo-org.1560.x6.nabble.com/Script-tama-o-de-ventana-de-vista-tp5263371p5329290.html
> Sent from the gvSIG usuarios mailing list archive at Nabble.com.
> _______________________________________________
> gvSIG_usuarios mailing list
> gvSIG_usuarios en listserv.gva.es
>
> Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección:
>
> https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios



Más información sobre la lista de distribución gvSIG_usuarios