[Gvsig_desarrolladores] cargar una capa en tiempo de ejecucion, una ayudita

Leticia Garcia lgarcia en bilbomatica.es
Jue Nov 24 13:54:02 CET 2011


Buenas, 

estoy usando gvsig 1.11,

y estoy trabajando con datos geométricos por eso tengo una base de datos
postgis,

lo que yo quiero es que cuando habrá un proyecto tenga la opción de
seleccionar plantas de edificios que es con lo que voy a trabajar, ahí en
los edificios tengo diferentes elementos entonces quiero que solo me
aparezcan estos, y no quiero que me aparezcan como seleccionados sino que
solo estén cargados los de esa planta, por eso no puedo utilizar los
filtros, porque el si quiere ver los datos de esa tabla no puede ver los de
otra planta, luego al seleccionar otra planta esta me deberá de desaparecer
y cargar otra capa con los datos de la otra planta. Hice una prueba con
shapes pero sin usar base de datos y me cree tantos shapes como plantas
tenia el edificio, y las desactivaba, pero ahora quiero intentar quitar y
poner capas en tiempo de ejecución, que la verdad nose ni si se puede, 

un saludo, y gracias


-----Mensaje original-----
De: gvsig_desarrolladores-bounces en listserv.gva.es
[mailto:gvsig_desarrolladores-bounces en listserv.gva.es] En nombre de Andrés
Maneiro
Enviado el: jueves, 24 de noviembre de 2011 13:36
Para: Lista de Desarrolladores de gvSIG
Asunto: Re: [Gvsig_desarrolladores] cargar una capa en tiempo de ejecucion,
una ayudita

Hola,

un par de ideas si estás usando gvSIG 1.X:

- échale un ojo a IFeatureIterator, que te permite filtrar registros según
varios parámetros (boundingbox, where, ...):
 
http://www.gvsig.org/web/docdev/docs/manual-para-desarrolladores-gvsig-1/lib
rerias-internas/fmap-1/
 
http://www.gvsig.org/web/docdev/manual-para-desarrolladores-gvsig/librerias-
internas/fmap/?searchterm=ifeature

- Si sólo te interesa filtrar ciertos registros de un SelectableDataSource
(un recordset, sólo datos alfanuméricos), yo lo tengo hecho de este modo
(ten cuidado al construir el SQL porque el componente que lo procesa es muy
puñetero: 
cuidado con mayúsculas, minúsculas, orden, ...):

   DataSourceFactory dsf = yourLayer.getRecordset().getDataSourceFactory();
   String sqlQuery = "select * from " + yourLayer.getRecordset().getName()
			+ " where " + yourField + " = '" + theValue
			+ "' and " + yourField2 + " = '" + theValue2 + "';";
   DataSource ds = dsf.executeSQL(sqlQuery, EditionEvent.ALPHANUMERIC);
   ds.setDataSourceFactory(dsf);
   SelectableDataSource sds = new SelectableDataSource(ds);
   EditableAdapter ea = new EditableAdapter();
   ea.setOriginalDataSource(sds);
   return ea.getRecorset(); // esto te devuelve el recorset filtrado

A ver si eso te ayuda a orientar algo lo que necesitas.

Saludos,
Andrés

On 24/11/11 13:07, gvsiglgc wrote:
> Buenas,
> ponerle un where en la condicion por ejemplo si una columna es de 
> plantas, seleccionar una planta que sera una columna de la base de 
> datos y se me cargue la capa con los datos de esa planta
>
> gracias!
>
>
> --
> View this message in context: 
> http://osgeo-org.1803224.n2.nabble.com/cargar-una-capa-en-tiempo-de-ej
> ecucion-una-ayudita-tp7027815p7027883.html
> Sent from the gvSIG desarrolladores mailing list archive at Nabble.com.
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en listserv.gva.es
> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
_______________________________________________
gvSIG_desarrolladores mailing list
gvSIG_desarrolladores en listserv.gva.es
http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores



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