[Gvsig_desarrolladores] como moverme dentro de un FLayer, iterar con elementos, recorrer puntos etc.

Cèsar Ordiñana cordin en disid.com
Mie Jun 23 17:30:57 CEST 2010


Hola Eñaut,

Ten en cuenta que tanto una capa como un documento tabla trabajan sobre 
una fuente de datos de DAL. Por lo tanto, sincronizar entre ellos 
consiste realmente en sincronizar sus fuentes de datos, en este caso sus 
FeatureStore.

Tienes que obtener el FeatureStore de cada uno de ellos, y con eso ya 
puedes trabajar.

En el caso de las capas, tendrán que ser de tipo FLyrVect, que tiene el 
método getFeatureStore().  TableDocument tiene también un método 
getStore() que te devuelve el FeatureStore.

Saludos,

agirrearri escribió:
> Hola, tengo que actualizar un FLayer con otro que tengo en dos objetos,
> layerA y layerB.  No se que objetos utilizar para hacerlo. Ando con el
> paquete org.gvsig.fmap.mapcontext.layers etc. No se si voy bien orientado.
> Necesito recorrer registros de un FLayer, campos de registros etc.
>
> Os cuento lo que tengo que hacer para que me podais aconsejar. Si quereis
> jaja
>
>
> Los tengo que sincronizar, tengo que actualizar una con la otra. Para eso
> necesito recorrer cada registro de los dos FLayer e ir mirando si ha abido
> cambios. Para eso tengo que poner layeA en edicion y leer de layerA y layerB
> y si hay diferencia en algun registro editar el layerB actualizandolo. Luego
> tambien tengo que actualizar una tabla (que tengo en un TableDocument) con
> informacion de unos campos de layerB.
>
> el algoritmo sería mas o menos este:
>
> Sincronizar(FLayer A, FLayer B, TableDocument tabla){
>    while(hayRegistro(A)){
>        leer registro de A;
>       if ( esta el registro de A en B?){
> SI:   coger registros de A y B
>          if (sonIguales los registros de A y B?){
>              Si: no actualizar
>              No: actualizar
>          }
>       }else{// si no existe el registro de A en B
> NO:           añadir registro de A a la B
>        }
>   }
>    Actualizar la tabla con un procedimiento similar con algunos campos de A
>    Modificar algunos campos de A.
> }
>
>
> ¿Que objetos puedo utilizar para hacer algo así?
>
> Gracias atentamente, Eñaut.
>
>   



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