[Gvsig_desarrolladores] Obtener una feature concreta por posición

Francisco Puga fpuga en icarto.es
Dom Jun 5 10:53:02 CEST 2016


Hola Joaquín,

Gracias por el post es muy ilustrativo.

La aproximación que estoy tomando para hacer la migración es tratar de
hacer una traducción 1 a 1, creando incluso clases auxiliares que me
provean de un comportamiento similar a la v1.x. Una vez que consiga tenerlo
funcionando mi idea es refactorizar hacia una estructura más acorde a la
v2. Igual me equivoco pero hice una prueba rápida e intentar migrar
directamente a una estructura como la v2 introduce demasiados bugs. De la
otra forma puedo tenerlo funcionando relativamente rápido y en función del
tiempo disponible priorizar tareas.

Tendría que revisar un poco el código pero por lo que explicas en el post
entiendo que con FeaturePagingHelper me traigo a memoria un número de
features igual al del tamaño de página y cuando pido una feature fuera de
la página actual hago otra petición (a bd o lo que sea).

Lo que tengo dudas es en el acceso al FeatureSet. Cuando se hace la
petición a la bd ¿cuando se crea el fastIterator?

El 4 de junio de 2016, 15:10, Joaquin Jose del Cerro Murciano <
jjdelcerro en gvsig.org> escribió:

>
>
> El 4 de junio de 2016, 12:52, Francisco Puga <fpuga en icarto.es> escribió:
>
>> Hola,
>>
>> Estoy tratando de migrar código de la 1 a la 2. En la 1 era muy habitual
>> acceder a una feature de la capa por posición con un código de este estilo:
>>
>> int pos = 0;
>> FLyrVect lyr = null;
>> IFeature feature = lyr.getSource().getFeature(pos);
>>
>> Cual sería la forma lógica de hacer esto en la 2. Ahora mismo estoy
>> probando a acceder mediante un iterator inicializado a esa posición
>> concreta, pero igual tiene más sentido con un FeatureQuery, ¿Podéis poner
>> un ejemplo de como sería con el FeatureQuery?
>>
>> public static FeatureReference getFeature(FeatureStore fs , long feature)
>> {
>> FeatureReference ref = null;
>> FeatureSet featSet = null;
>> DisposableIterator fastIterator = null;
>> try {
>> featSet = fs.getFeatureSet();
>> fastIterator = featSet.fastIterator(feature);
>> Feature feat = (Feature) fastIterator.next();
>> ref = feat.getReference();
>> } catch (DataException e) {
>> logger.error(e.getStackTrace(),e);
>> } finally {
>> DisposeUtils.dispose(fastIterator);
>> DisposeUtils.dispose(featSet);
>> }
>> return ref;
>> }
>>
>>
> Hola Francisco,
> en lugar de contestarte aquí he preferido crear un pequeño articulo en el
> blog de gvSIG comentando sobre esto.
>
> Puedes encontrar el articulo en:
>
>
> https://blog.gvsig.org/2016/06/04/accediendo-a-un-feature-por-posicion-en-gvsig-desktop-2-3-0/
>
> También te recomiendo que le eches un vistazo a:
>
>
> https://blog.gvsig.org/2015/04/21/recomendaciones-y-trucos-para-desarrollar-con-gvsig-2-1-1-recorriendo-datos/
>
> Espero que te sirva,  y no dudéis en preguntar las dudas, trataremos de
> contestar en cuanto podamos.
>
> Un saludo
> Joaquin
>
>
>
>
>
>> Saludos. Gracias
>>
>> _______________________________________________
>> gvSIG_desarrolladores mailing list
>> gvSIG_desarrolladores en listserv.gva.es
>> Para ver histórico de mensajes, editar sus preferencias de usuario o
>> darse de baja en esta lista, acuda a la siguiente dirección:
>> https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>>
>>
>
>
> --
> --------------------------------------
> Joaquin Jose del Cerro Murciano
> Development and software arquitecture manager at gvSIG Team
> jjdelcerro en gvsig.com
> jjdelcerro en gvsig.org
> gvSIG Association
> www.gvsig.com
> www.gvsig.org
>
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en listserv.gva.es
> Para ver histórico de mensajes, editar sus preferencias de usuario o darse
> de baja en esta lista, acuda a la siguiente dirección:
> https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>
>


-- 
Francisco Puga
iCarto | Innovación, Cooperación, Cartografía y Territorio S.L.
http://www.icarto.es/

c/ Rafael Alberti nº 13 – 1º D
15008 A Coruña
Galicia (Spain)
+34 881927808

Este correo electrónico contiene información estrictamente confidencial y
es de uso exclusivo del destinatario, quedando prohibida a cualquier otra
persona su revelación, copia, distribución, o el ejercicio de cualquier
acción relativa a su contenido. Si ha recibido este mensaje por error, por
favor conteste a su remitente mediante correo electrónico y proceda a
borrarlo de su sistema.

Sus datos personales serán tratados de forma confidencial y no serán
cedidos a terceros ajenos a ICARTO. En cualquier caso, podrá ejercer los
derecho de oposición, acceso, rectificación y cancelación de acuerdo con lo
establecido en la Ley Orgánica 15/99, de 13 de diciembre, de Protección de
Datos de Carácter Personal dirigiéndose a Innovación, Cooperación,
Cartografía e Territorio, SL. (ICARTO) en la dirección postal a C/ Rafael
Alberti, nº 13, 1ºD, 15.008 – (A Coruña).
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20160605/8a0dba26/attachment.htm 


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