Statistics
| Revision:

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 @ 478

History | View | Annotate | Download (1.71 KB)

1

    
2
use_plugin("org.gvsig.app.document.layout2.app.mainplugin")
3

    
4
from gvsig import *
5
from org.gvsig.app.project.documents.layout import DefaultLayoutManager
6
from javax.imageio import ImageIO
7

    
8
def main(*args):
9

    
10
  # Obtenemos la capa activa de la vista activa
11
  capa = currentLayer()
12

    
13
  # Obtenemos el primer elemento seleccionado de la capa
14
  seleccion = list()
15
  seleccion.extend(capa.getSelection())
16
  entidad = seleccion[0]
17

    
18
  # Obtenemos el encuadre del elemento seleccionado,
19
  # el rotulo y el logo a mostrar en el mapa.
20
  encuadre = entidad.geometry().getEnvelope()
21
  titulo = "Provincias de %s %s" % (entidad.NAMEUNIT, entidad.NATCODE[2:4])
22
  logo = ImageIO.read(script.getResource("datos/logos/"+ entidad.NATCODE[2:4]+".png"))
23
  
24
  # Obtenemos el objeto que se corresponde con el proyecto.
25
  proyecto = currentProject()() # Ojo con los dobles perentesis
26

    
27
  # Localizamos el mapa de nombre "Plantilla" de entre los documentos del proyecto
28
  plantilla = proyecto.getDocument("Plantilla",DefaultLayoutManager.TYPENAME )
29

    
30
  context = plantilla.getLayoutContext()
31

    
32
  # Nos recorremos todos los elementos del mapa buscando los que hemos etiquetado
33
  for elemento in  context.getAllFFrames():
34
    if elemento.getTag() == "Vista":
35
      # Ajustamos el encuadre de la vista al del elemento seleccionado
36
      mapContext = elemento.getMapContext()
37
      mapContext.getViewPort().setEnvelope(encuadre)
38
      mapContext.invalidate()
39
      
40
    elif elemento.getTag() == "Titulo":
41
      # Cambiamos el rotulo del texto que habiamos etiquetado en el mapa  
42
      elemento.clearText() 
43
      elemento.addText(titulo)
44

    
45
    elif elemento.getTag() == "Logotipo":
46
      # Cambiamos la imagen del logotipo
47
      elemento.setImage(logo)
48

    
49
  context.fullRefresh() 
50