[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