[Gvsig_desarrolladores] Pintarsólo algunos elementos de un shape

Maria Arias de Reyna marias en emergya.es
Vie Ene 16 12:48:19 CET 2009


El Jueves 15 Enero 2009 18:09, Francisco José Peñarrubia escribió:
> Hola María (y al resto :-) ).
>
> Hay una forma más sencilla de acceder a todo junto. La interfaz
> IReadableVectorial tiene un método IFeature getFeature(numReg).

Gracias Fran, la verdad que me ha simplificado mucho el código.

Ahora estoy con la última parte, la de dibujar la geometría que he obtenido, 
per no consigo que me la muestre. 

Lo que hago es que primero creo una capa y la añado a la lista de capas:

			GraphicLayer l = new GraphicLayer();
			l.setName("Route");
			l.setActive(true);
			l.setVisible(true);
			l.setProjection(CRSFactory.getCRS("EPSG:23030"));
			mapControl.getMapContext().getLayers().addLayer(l);

Y después de procesar y elegir las geometrías que quiero dibujar (que mirando 
en tiempo de ejecución parece que son correctas), las intento añadir a la 
capa:

				GraphicLayer gLayer = (GraphicLayer) mapControl.getMapContext()
											.getLayers().getLayer("Route");

				IGeometry geomGvSig = FConverter.jts_to_igeometry(geometria_obtenida);

				FGraphic fgraph = new FGraphic(geomGvSig,
						FConstant.SHAPE_TYPE_POLYLINE);

				gLayer.addGraphic(fgraph);
				// Dibujamos la capa
				mapControl().drawGraphics();

Pero no me muestra nada. Otras capas que cargo directamente de ficheros sí que 
me las muestra. Y salvo que al convertir de IGeometry a JTSGeometry haga una 
traslación sin que yo se lo pida, tampoco es porque no esté haciendo zoom 
correctamente.

No me lanza ninguna excepción.

¿Me estoy saltando algún paso?

En verdad me da igual el tipo de capa a utilizar, escogí GraphicLayer porque 
me pareció la más simple. 

He probado a poner un layer.setDirty(true) justo antes de llamar a 
drawGraphics(), pero tampoco funciona.

Un saludo,
Maria.



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