[Gvsig_desarrolladores] Establecer propiedades de capas
Montes Cámara, Victor
victor.montes en alicante-ayto.es
Mar Oct 22 10:52:03 CEST 2019
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" <omartinez en gvsig.com>
Para: "gvsig desarrolladores" <gvsig_desarrolladores en 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 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_desarrolladores
--
--
gvSIG Association
Óscar Martínez omartinez en gvsig.com
_______________________________________________
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: https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20191022/56af6f4e/attachment.html>
Más información sobre la lista de distribución gvSIG_desarrolladores