gvsig-scripting / org.gvsig.scripting / trunk / org.gvsig.scripting / org.gvsig.scripting.app / org.gvsig.scripting.app.mainplugin / src / main / resources-plugin / scripting / scripts / examples / layout / personalizar_mapa1.py @ 593
History | View | Annotate | Download (1.74 KB)
1 |
|
---|---|
2 |
from uselib import use_plugin |
3 |
|
4 |
use_plugin("org.gvsig.app.document.layout2.app.mainplugin")
|
5 |
|
6 |
from gvsig import * |
7 |
from org.gvsig.app.project.documents.layout import DefaultLayoutManager |
8 |
from javax.imageio import ImageIO |
9 |
|
10 |
def main(*args): |
11 |
|
12 |
# Obtenemos la capa activa de la vista activa
|
13 |
capa = currentLayer() |
14 |
|
15 |
# Obtenemos el primer elemento seleccionado de la capa
|
16 |
seleccion = list()
|
17 |
seleccion.extend(capa.getSelection()) |
18 |
entidad = seleccion[0]
|
19 |
|
20 |
# Obtenemos el encuadre del elemento seleccionado,
|
21 |
# el rotulo y el logo a mostrar en el mapa.
|
22 |
encuadre = entidad.geometry().getEnvelope() |
23 |
titulo = "Provincias de %s %s" % (entidad.NAMEUNIT, entidad.NATCODE[2:4]) |
24 |
logo = ImageIO.read(script.getResource("datos/logos/"+ entidad.NATCODE[2:4]+".png")) |
25 |
|
26 |
# Obtenemos el objeto que se corresponde con el proyecto.
|
27 |
proyecto = currentProject()() # Ojo con los dobles perentesis
|
28 |
|
29 |
# Localizamos el mapa de nombre "Plantilla" de entre los documentos del proyecto
|
30 |
plantilla = proyecto.getDocument("Plantilla",DefaultLayoutManager.TYPENAME )
|
31 |
|
32 |
context = plantilla.getLayoutContext() |
33 |
|
34 |
# Nos recorremos todos los elementos del mapa buscando los que hemos etiquetado
|
35 |
for elemento in context.getAllFFrames(): |
36 |
if elemento.getTag() == "Vista": |
37 |
# Ajustamos el encuadre de la vista al del elemento seleccionado
|
38 |
mapContext = elemento.getMapContext() |
39 |
mapContext.getViewPort().setEnvelope(encuadre) |
40 |
mapContext.invalidate() |
41 |
|
42 |
elif elemento.getTag() == "Titulo": |
43 |
# Cambiamos el rotulo del texto que habiamos etiquetado en el mapa
|
44 |
elemento.clearText() |
45 |
elemento.addText(titulo) |
46 |
|
47 |
elif elemento.getTag() == "Logotipo": |
48 |
# Cambiamos la imagen del logotipo
|
49 |
elemento.setImage(logo) |
50 |
|
51 |
context.fullRefresh() |
52 |
|