[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