[Gvsig_desarrolladores] No aparece la capa, la leyenda si, leyenda valores unicos
belen.garcia en e-sig.es
belen.garcia en e-sig.es
Jue Ago 13 12:56:18 CEST 2009
Hola Buenas,
Estoy intentando hacer una leyenda por valores unicos, ya he hecho una
leyenda por intervalos y me aparece corretamente. Mi problema es el
siguiente,
Quiero realizar una leyenda de valores unicos accediendo a un campo que
es el municipio, cargando la capa y la leyenda me aparecen solo las
leyendas, la capa no aparece, porque, ademas justo al lado de la capa
aparece una aspa roja que no me deja acceder a las propiedades de la
capa.
Recargando la capa directamente desde gvsig, ya si me deja acceder a las
propiedades de la capa, que mirandolas parece que esta todo bien todo
perfecto.
Aqui dejo mi codigo por si alguien me puede ayudar.
La capa esta bien definida y se muestra en pantalla, solo que con
Default como leyenda, nombreCampo va a ser el campo por el que voy
acceder.
Es decir me aparecen las leyendas y no la capa.¿Por qué?
Por favor a ver si alguien me ayuda. Gracias de Antemano.
Un Saludo.
private void leyendaValorUnico(FLyrVect capa,String nombreCampo) {
int k, j;
String filterName=nombreCampo;
SelectableDataSource dsCaminos;
String value;
int campo;
try {
dsCaminos = ((FLyrVect) capa).getRecordset();
campo = dsCaminos.getFieldIndexByName(filterName);
String numero= dsCaminos.getFieldName(1);
// Creamos el primer y último color.
Color startColor = new Color(20,255,20);
Color endColor = new Color(40,150,40);
VectorialUniqueValueLegend legend = null;
legend =
LegendFactory.createVectorialUniqueValueLegend(FShape.MULTI);
FSymbol myDefaultSymbol=null;
Vector valoresClave=new Vector();
StringValue nombre;
nombre= (StringValue) dsCaminos.getFieldValue(0, campo);
valoresClave.addElement(nombre);
nombre= (StringValue) dsCaminos.getFieldValue(1, campo);
valoresClave.addElement(nombre);
nombre= (StringValue) dsCaminos.getFieldValue(2, campo);
valoresClave.addElement(nombre);
int r;
int g;
int b;
int stepR;
int stepG;
int stepB;
r = startColor.getRed();
g = startColor.getGreen();
b = startColor.getBlue();
stepR = (endColor.getRed() - r) /2;
stepG = (endColor.getGreen() - g) /1;
stepB = (endColor.getBlue() - b) /6;
legend.clear();
legend.useDefaultSymbol(false);
StringValue clave;
for (k = 0; k < valoresClave.size(); k++) {
clave = (StringValue) valoresClave.get(k);
Color c = new Color(r, g, b);
String etiqueta="Municipio"+k;
//si no esta creado el simbolo se crea
myDefaultSymbol = new FSymbol(FShape.MULTI, c);
myDefaultSymbol.setDescription(etiqueta);
myDefaultSymbol.setSize(3);
myDefaultSymbol.setSizeInPixels(true);
//////////////////////////////////////
// CALCULAMOS UN COLOR APROPIADO
r = r + stepR;
g = g + stepG;
b = b + stepB;
/////////////////////////////////
legend.addSymbol(clave, myDefaultSymbol);
}
capa.setLegend(legend);
}catch (com.hardcode.gdbms.engine.data.driver.DriverException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch(NullPointerException e){
e.printStackTrace();
}
catch (FieldNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch (DriverException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
More information about the gvSIG_desarrolladores
mailing list