Vamos a utilizar el comando getSelection, este comando está dentro de la librería de gvSIG en la clase Layer y en la clase Table. Se utiliza para agrupar las entidades seleccionadas dentro de la capa o de una tabla. Y se utiliza de la forma:
.getSelection()
En nuestro ejemplo del post anterior sobre Unir puntos en una linea podemos modificarlo simplemente cambiando la linea donde se agrupan las entidades, esto haría que los puntos utilizados para la unión en una linea solo fueran los seleccionados:
features
=
currentLayer().features()
por:
features
=
currentLayer().getSelection()
Aunque esto no implica necesariamente que a la hora de unir los puntos los haga en el orden que hemos hecho la selección. Haré un ejemplo de esto en próximos artículos.
A continuación veremos un ejemplo donde queremos información sobre las entidades que tenemos seleccionadas.
Nota: Si la selección la tenemos activa en la capa, debemos utilizar currentLayer() a la hora de agruparlas en nuestro código. Si tenemos una tabla, deberíamos de utilizar currentTable().
El código que se nos quedaría es este.
from gvsig import * def main(): """Muestra entidades seleccionadas""" #Al usar currentLayer() debemos tener #una vista y capa activa, sino podemos usar getLayer() #para una capa especifica #Obtenemos la lista de las entidades seleccionadas selection = currentLayer().getSelection() #Podemos contarlas ya que es un featureSet numero = selection.getCount() #if para controlar que exista alguna selección if (numero == 0): return print "Entidades selecionadas: ", numero #Las imprimimos por consola, justo a su 1a y 2a columna for select in selection: print ("Codigo de ID %s : %s" % (select[0],select[1]))
Deja una respuesta