En el próximo ejemplo aprenderemos a unir los puntos que tenemos en una capa, en una línea que añadiremos a una nueva capa. Este ejemplo podemos utilizarlo a continuación del creado aquí.
En este caso unirá todos los puntos de la capa en el orden que vienen. Si lo que necesitamos es tan solo unir en una linea ciertos puntos, deberíamos hacer tan solo alguna pequeña modificación.
Ejemplo: unir puntos en una línea
unirPuntoEnUnaLinea.py
from gvsig import *
from geom import *
def main():
"""Crear una linea uniendo los puntos de la capa activa"""
#Teniendo una capa de puntos activa en la Vista
#Almacenamos todas las entidades
features = currentLayer().features()
#Creamos una geometria de tipo linea
geom = createGeometry(LINE)
#for: por cada entidad (o puntos) que tengamos en la capa
for i in features:
#Sacamos las coordendas
x = i.geometry().getX()
y = i.geometry().getY()
#Creamos un punto para..
punto = createPoint(x,y)
#..añadirlo como vertice a la linea
linea = geom.addVertex(punto)
#Almacenmos los valores de la nueva entidad creada
#La añadiremos a la nueva capa
values = dict()
values["ID"]=101
values["CODIGO"]="linea"
#geom corresponde a la linea creada en el for:
values["GEOMETRY"]=geom
#Creamos esquema
schema = createSchema()
schema.append("ID","INTEGER", size=7, default=0)
schema.append("CODIGO", "STRING", size=5, default="m")
schema.append("GEOMETRY", "GEOMETRY")
#Creamos capa con nuestro nuevo esquema
crs = currentProject().getProjectionCode()
capa = "linea_union.shp"
ruta1 = "C:\gvsig\\"
ruta = ruta1 + capa
newLayer = createShape(schema, ruta, CRS = crs, geometryType=LINE)
newLayer.append(values)
#Guardamos y añadimos la capa a la vista
newLayer.commit()
currentView().addLayer(newLayer)

Lovely bllog you have here