[Gvsig_usuarios] Script tamaño de ventana de vista

sinorfavela fircorreo en yahoo.es
Mie Jul 26 13:10:01 CEST 2017


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.


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