[Gvsig_desarrolladores] importar una leyenda que está en fichero gvsleg

Joaquin Jose del Cerro Murciano jjdelcerro en gvsig.org
Jue Oct 8 12:17:52 CEST 2015


El 8 de octubre de 2015, 9:42, Ana Calle <nico200307 en gmail.com> escribió:

> hola a todos,
> estoy intentando cargar sobre una capa, una leyenda que tengo guardada en
> fichero 'gvsleg' (version 2.2), No se si esto es posible.
> Con versiones anteriores cargábamos leyendas tipo *.gvl ya que se trataba
> de un fichero xml
> (algo como LegendFactory.createFromXML(new XMLEntity(XmlTag));)
>
> ¿alguien puede aportar alguna pista sobre cómo se procedería con el actual
> formato de fichero?
>
>
Hola Ana,
te pego un pequeño script que carga una leyenda y la asigna a la capa
activa.
No esta en java pero es fácil de probar y creo que se entiende bastante
bien.


#-----------------------------><---------------------------------><-----------------------
from gvsig import *

from java.io import File

from org.gvsig.fmap.mapcontext import MapContextLocator
from org.gvsig.fmap.geom import Geometry

def main(*args):
  layer = currentLayer()
  if layer == None:
    msgbox("Debera seleccionar una capa para ejecutar este script.")
    return

  # Fichero donde se encuentra la legenda a cargar
  # Cambiar la ruta para adaptarla a donde haya un fichero gvsleg en el
equipo.
  f =
File("/home/jjdelcerro/datos/geodata/vector/shp2d/world_4326/country-l.gvsleg")

  # Lo primero conseguimos el reader de la legenda de tipo "gvsleg"
  mapContextManager = MapContextLocator.getMapContextManager()
  legendreader = mapContextManager.createLegendReader("gvsleg")

  # Cargamos la legenda
  legend = legendreader.read(f,Geometry.TYPES.GEOMETRY)

  # Y se la aplicamos a la capa activa
  layer.setLegend(legend)
#-----------------------------><---------------------------------><-----------------------

Lo que no deberías hacer nunca es intentar leer e interpretar el fichero
gvsleg, ya que el formato de este puede sufrir algún cambio de una versión
a otra y dejaría de irte tu código.

La otra cosa que tienes que tener en cuenta que no todas las leyendas se
pueden aplicar a todas las capas, ya que estas pueden ser dependientes del
tipo de geometría y la estructura de la tabla.

Espero que te sirva.
Si tienes alguna duda pregunta, cuando tenga un ratito intento contestar.

Un saludo
Joaquin



> Muchas gracias de antemano
> Saludos
>
> Ana
>
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores 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:
> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>
>


-- 
--------------------------------------
Joaquin Jose del Cerro Murciano
Development and software arquitecture manager at gvSIG Team
jjdelcerro en gvsig.com
jjdelcerro en gvsig.org
gvSIG Association
www.gvsig.com
www.gvsig.org
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20151008/9d49c0ce/attachment.htm 


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