Funciones basicas

En gvSIG existe una clara jerarquía entre los distintos documentos que pueden formar un proyecto. De este modo, existe un "Proyecto" que a su vez tiene Documentos por ejemplo, "Vistas", "Tablas", "Mapas", algunos de estos documentos a su vez pueden tener colecciones de otras cosas, por ejemplo una Vista puede tener múltiples capas, es decir, podría decirse, que los documentos que forman un proyecto puede decirse que tiene forma de árbol.

Una de las ventajas de la extensión de scripting en gvSIG ­desktop 2 es que está completamente integrada en la plataforma, lo que permite interactuar directamente con los distintos documentos que usa gvSIG, sin embargo, puede ser complicado acceder a un elemento concreto del proyecto, sobretodo si hay varios del mismo tipo. Para facilitar la obtención de estos elementos existen funciones que nos permiten acceder fácil y rápidamente a los documentos activos del proyecto. Estas funciones son :

El objeto Proyecto (Project). Función currentProject

El objeto que está más alto en la jerarquía es el Proyecto, y en gvSIG únicamente puede haber uno cargado a la vez. Podemos obtener el proyecto que tenemos cargado mediante la función currentProject.
La sintaxis es muy sencilla:
project = currentProject()
El objeto project tiene, entro otros, los siguientes métodos:

Acceso a las vistas del proyecto

Como hemos mencionado, los distintos elementos que constituyen un proyecto están organizados de forma jerárquica en forma de árbol. De este modo, para obtener un elemento concreto debemos preguntar a la rama superior por ese elemento.
Por ejemplo, supongamos que queremos obtener una vista distinta de la que tenemos activa en el proyecto. Para ello lo primero que debemos hacer es obtener el objeto que contiene las vistas, es decir el proyecto, y a continuación, una vez que tenemos el proyecto podemos pedir que nos de una vista concreta.
Como hemos visto anteriormente código para obtener una vista del proyecto sería:
    project = currentProject()
    vista = project.getView('nombreDeLaVista')
El método getView del proyecto nos permite obtener la vista que esté activa o una concreta que especifiquemos mediante su nombre. En el caso de que no encuentre una vista que coincida con el nombre devolverá None, siendo nombreDeLaVista una cadena de texto que coincida con el nombre de la vista con la que deseamos trabajar.

Observa que si invocamos el método sin pasar como parámetro el nombre de  la vista que queramos, el comportamiento es el mismo que si invocamos a la  función currentView, que se puede invocar sin necesidad de obtener el  proyecto previamente.

El objeto vista (View). Función currentView

Esta función nos permite obtener directamente la vista activa de nuestro proyecto, sin necesidad de estar buscando entre las vistas que tenga el proyecto cargadas.
La sintaxis es:
    vista = currentView()
Los métodos principales del objeto Vista son:
­

La capa especial Graphics layer

Graphics layer es una capa especial asociada a una vista de gvSIG. Esta capa vendría a ser como un acetato que se pinta sobre las capas que componen la vista. La capa Graphics se puede utilizar para pintar cosas sobre el resto y se accede mediante el método getGraphicsLayer de la vista. Los objetos graphics que se insertan en esta capa especial se agrupan mediante identificadores del grupo (groupId).
La sintaxis es:
    vista = currentView()
    vista.getGraphicsLayer()
Los métodos principales del objeto graphicsLayer son:
Un uso correcto del objeto graphicsLayer implica que lo primero que debemos hacer es borrar los graphics que haya dentro del groupId que vayamos a utilizar. Después insertaremos los símbolos que queramos utilizar y por último añadiremos los graphics a la capa.

El siguiente código define una función que recibe como parámetros una geometría y un símbolo y los añade a la graphicsLayer de la vista activa.
    def insertSymbol(geometry, symbol):
      graphicsLayer = currentView().getGraphicsLayer()
      graphicsLayer.removeGraphics("ejemplo")
      idSimbolo = graphicsLayer.addSymbol(symbol)
      graphicsLayer.addGraphic("ejemplo", geometry, idSimbolo, "Etiqueta")

Acceso a las capas de la vista

Como hemos visto podemos obtener la capa activa de la vista mediante la función currentLayer, pero si deseamos obtener una capa distinta debemos solicitarsela a la vista mediante el método getLayer pasándole como parámetro el nombre de la capa que deseamos obtener.
La sintaxis es:
    vista.getLayer([ nombreDeLaCapa ])
Siendo nombreDeLaCapa una cadena de texto que coincida con el nombre de la capa que deseamos obtener.

Si invocamos el método sin parámetros, devolverá la capa activa, si hay  alguna, y None en caso contrario. Es decir, tiene el mismo comportamiento  que la función currentLayer

Es posible también obtener una colección con todas las capas que tiene cargadas la vista a través del método getLayers.
La sintaxis es
    layers = vista.getLayers()
Esta colección nos permite recorrer todas las capas de la vista y operar con ellas.

Obtener el documento Table activo . Función currentTable

Devuelve la Tabla activa del proyecto
La sintaxis es
    table = currentTable()

Obtener la capa activa. Función currentLayer

Esta función permite obtener directamente la capa activa de nuestra vista.
La sintaxis es
    layer = currentLayer()

5 Funciones de simbología. Creación de símbolos básicos

Estas funciones devuelven un símbolo básico que podemos instertar en el objeto graphicsLayer.
Estas funciones son:
­
El parámetro color puede ser o un string que se corresponde con el nombre de un color o un objeto java.awt.Color :

Otras funciones

Función getCRS

Devuelve un objeto Projection a partir de un código. Si el código no es válido, devuelve None.
    projection = getCRS(name)

Función getDataFolder

Devuelve la ruta en la que se encuentra la carpeta de datos definida en las preferencias de gvSIG (Preferencias/General/Carpetas). Si la carpeta no está definida devuelve None.
La sintaxis es
    path = getDataFolder()

Función getColorFromRGB

Devuelve un objeto java.awt.Color a partir de los valores rojo, verde, azul y alpha en un rango 0­ .. 255.
    color = getColorFromRGB(r, g, b ,a)

Función getDefaultColor

Devuelve el objeto java.awt.Color que se corresponde con el color por defecto del relleno definido en las preferencias de gvSIG (preferencias/Simbología).
    color = getDefaultColor()