[Gvsig_desarrolladores] Obtener una feature concreta por posición

César Martínez cmartinez en scolab.es
Lun Jun 6 11:08:12 CEST 2016


Hola Francisco,

El día 5 de junio de 2016, 10:53, Francisco Puga <fpuga en icarto.es> escribió:
> Hola Joaquín,
> 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).


Los métodos que comentaba Joaquín:
getFeatureAt(long index)
getTotalSize()
asList()

aunque internamente carguen sólo una página del tamaño que
especifiques, son transparentes para ti en cuanto a la carga de
páginas.

Es decir, si pides una Feature fuera de la página que está cargada,
automáticamente cargan la nueva página y te devuelven la Feature.

Saludos,


>
> 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).
>
> _______________________________________________
> 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
>



-- 
SCOLAB
http://scolab.es


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