[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