Muchas gracias Óscar, 

Funciona muy bien. Ahora me falta el color del borde en las capa de tipo 
polígono. 

Un saludo, 
Víctor Montes. 

----- Mensaje original -----

De: "Óscar Martínez" <omarti...@gvsig.com> 
Para: "gvsig desarrolladores" <gvsig_desarrolladores@listserv.gva.es> 
Enviados: Lunes, 21 de Octubre 2019 14:22:16 
Asunto: Re: [Gvsig_desarrolladores] Establecer propiedades de capas 



Buenas, 

Voy a irte respondiendo en varios emails a los diferentes casos que planteas. 

Para el caso de cambiar el color de la capa: En gvSIG la capa no lleva 
directamente aplicado un color, sino que cada capa lleva aplicada un tipo de 
leyenda y esta es la que se encarga de la simbología que tiene dicha capa. Por 
ejemplo, al crear una capa nueva por defecto gvSIG le aplica una simbología de 
símbolo único (SingleSymbolLegend), pero en gvSIG hay más tipos de leyendas 
como la de intervalos, etc. 


Si estás creando capas nuevas y deseas cambiarle el color de este tipo de 
simbología puedes aprovecharte de que ya le estará asignando una simbología de 
símbolo único por defecto y cambiarle a esa el color. Debes de acceder a la 
capa, de ahí a su leyenda y de ahí acceder al Símbolo que está utilizando para 
pintarla. 

En este caso no debería de importarnos si la capa que creamos es de tipo 
puntos, lineas, polígonos.. el color es aplicable a todos los símbolos. 


Puedes ver un ejemplo en el siguiente script (está preparado para que pueda 
ejecutarse y añada una capa a la Vista asignándole un color determinado): 
# encoding: utf-8

import gvsig
from gvsig import geom
from java.awt import Color

def main(*args):

  # Creating new layer
  ft = gvsig.createSchema()
  ft.append("ID", "INTEGER")
  ft.append("GEOMETRY", "GEOMETRY")
  ft.get('GEOMETRY').setGeometryType(geom.MULTIPOLYGON,geom.D2)

  layer = gvsig.createShape(ft, prefixname="testSymbol")
  store = layer.getFeatureStore()
  gvsig.currentView().addLayer(layer)
  # Change legend
  legend = layer.getLegend()
  print "legend: ", legend #SingleSymbolLegend por defecto
  symbol = legend.getDefaultSymbol()
  print "symbol:", symbol # SimpleFillSymbol en capas de poligonos
  #Como es un ISimbol podemos..
  #symbol.setColor(Color.GREEN) 
  symbol.setColor(Color(200,100,200)) 


Puedes ver en otro ejemplo que tenemos en la documentación de scripting ćomo 
creamos otro tipo de simbología diferente a la de por defecto y se la aplicamos 
a una capa. 

http://downloads.gvsig.org/download/web/es/build/html/scripting_devel_guide/2.4/leyendas.html#en-capas-vectoriales
 

Cualquier duda nos comentas 

Saludos, 

Óscar 
El 18/10/19 a las 10:43, Montes Cámara, Victor escribió: 



Buenos días, 

Tengo un desarrollo en el que creo capas shapefile dinámicamente a partir de 
tablas en Oracle Spatial. 
Me gustaría saber como cambiar, a través de scripting, las propiedades de la 
capa, tales como color, etiquetas, zoom mínimo o incluso como agrupar capas. 

Un saludo. 
Víctor Montes 

_______________________________________________
gvSIG_desarrolladores mailing list gvSIG_desarrolladores@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_desarrolladores 



-- 
--
gvSIG Association
Óscar Martínez omarti...@gvsig.com 

_______________________________________________ 
gvSIG_desarrolladores mailing list 
gvSIG_desarrolladores@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_desarrolladores 

_______________________________________________
gvSIG_desarrolladores mailing list
gvSIG_desarrolladores@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_desarrolladores

Responder a