[Gvsig_desarrolladores] Pintarsólo algunos elementos de un shape

Francisco José Peñarrubia fpenarru en gmail.com
Jue Ene 15 18:09:00 CET 2009


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).
Puedes usar eso para obtener las dos cosas, la geometría y los 
atributos. La razón para que existan también los otros métodos es por 
velocidad (a veces no necesitas tener todos los campos, solo quieres 
iterar por el shape, o un subconjunto de ellos).
Es decir, que con FLyrVect.getSource().getFeature(numReg) te serviría.

Luego puedes usar IFeature.getGeometry() y IFeature.getAttributes(). 
También tiene un getId() que en el caso de postgis suele coincidir con 
el GID si al crear la capa le dices que ese es el campo único.

Saludos, y espero que te sirva.

Fran Peñarrubia
Equipo gvSIG.


Maria Arias de Reyna escribió:
> El Jueves 15 Enero 2009 14:04, Jose Manuel Vivó (Chema) escribió:
>   
>> A lo del 'gid' si te refieres al identificador del registro, gvSIG ahora
>> mismo, accede a los datos de forma aleatoria usando el número de registro.
>> Con eso te quiero decir que el getSource().getShape(0) el valor geométrico
>> del primer registro y .getRecordset().getFieldValue(0,0) te está
>> devolviendo el valor de primer campo del primer registro, etc...
>>     
>
> Es decir, que accede en el mismo orden al alfanumerico y al geométrico, ¿no? Y 
> si yo hiciese un bucle tal que así:
>
> for(i....)
> {
> 	getShape(i)
>        getFieldValue(i,x)
> }
>
> ambos se referirían a la misma fila y la geometría que saldría con getShape 
> sería la relacionada con los valores de los atributos. ¿Verdad?
>
> Muchísimas gracias a los dos, la verdad es que me habéis aclarado mucho :)
>
>   



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