Como sabéis, la última versión de gvSIG (la 2.0) trae una extesión de scripting. Dicha extensión permite acceder a muchas de las funciones de gvSIG utilizando python. EdugvSIG comienza una nueva sección para ir demostrando la gran potencialidad que tiene desarrollar nuestras propias herramientas de una forma más sencilla. De esta manera, nos convertimos en desarrolladores de nivel medio, sin más que tener algunos conocimientos básicos de programación (python es relativamente sencillo y tiene montones de documentación para aprender).
Para empezar a abrir boca, os dejo algunos enlaces de scripts realizados por Víctor Acevedo, uno de los desarrolladores de esta extension:
- Valor máximo y mínimo de un campo asociado a una capa de polígonos.
- Crear un área de influencia.
- Crear una poligonal a partir de datos de distancia y acimut desde un archivo csv.
Bueno, con el ánimo de contribuir ahí va mi primer script. En este caso es un script muy sencillo que trata de contar el número de entidades de la capa activa de una vista. Debe haber una capa cargada y activa. En caso de no haber ninguna capa cargada o haber más de una activa, el script lanzará un mensaje de advertencia. El código debéis pegarlo en el editor (composer) y ejecutarlo desde ahí mismo o desde el lanzador (launcher). Ni que decir tiene que primero debéis tener instalados gvSIG 2.0 y la extensión de scripting :-)) (esto último se hace desde el administrador de complementos).
Aquí os dejo el código:
""" Este script obtiene el número de entidades de la capa activa. Autor: Jesús Palomar. 2012 """ #necesario para acceder a las capas de gvsig from gvsig import * #necesario para acceder a los cuadros de diálogo from commonsdialog import * def main(): try: #acceso a la capa activa layer = currentLayer() #acceso al conjunto de entidades de la capa activa (FeatureSet) features = layer.features() #acceso al número de entidades n = features.getCount() #muestra el mensaje con el resultado msgbox("Entidades: %d" %n,"Entidades",1) except: """ si se produce un error al capturar la capa activa bien porque no hay ninguna activa o no hay ninguna cargada, sale un mensaje. También falla si hay más de una capa activa o si la capa no es vectorial. """ msgbox("Tiene que tener una sola capa vectorial activa","AVISO",2)
Saludos y espero que lo disfrutéis.
¿es posible desde scripting realizar ventanas y mostrar valores alfanumericos o fotos almacenadas en una BD tipo Postgre?
ResponderEliminar