[Gvsig_usuarios] Coordenadas XY extremos lineas

Óscar Martínez masquesig en gmail.com
Vie Mayo 9 21:29:58 CEST 2014


Hola a todos,

Tal y como te lo han explicado lo veo perfecto. Por si quieres otra 
alternativa he hecho un pequeño script [0] de python que podría 
servirte. Para usar esto necesitas tener la versión 2.x de gvSIG, y 
meterlo en el Scripting Composer. Si no conoces la extensión tengo un 
pequeño articulo explicándolo paso a paso [1].

Lo que hace es coger una capa de lineas (la capa que tengas activa en 
negrita en tu vista), agrega dos campos X,Y a esa capa, y los rellena 
con el último valor del vértice de la linea. Recomiendo que hagas 
primero una copia de la capa antes de ejecutarlo para hacer alguna 
prueba primero y ver si es lo que quieres (aunque en principio solo te 
generaría dos columnas nuevas que podrías eliminar).

Espero que te pueda servir.

Un saludo,
         Óscar

[1] 
http://masquesig.com/2013/08/18/guia-instalacion-del-modulo-de-scripting-en-gvsig/
[0] Archivo adjunto



El 09/05/2014 21:08, Gustavo Agüero Córdoba escribió:
>
> Raúl, una aclaración a mi correo anterior.
>
> En realidad sí que se puede resolver todo el ejercicio a puro Sextante:
>
> --- Sustituye este paso:
>
> PASO_3: AGREGAR COORDENADAS DE LOS EXTREMOS A LA TABLA DE LAS LÍNEAS
>
> Sextante/Herramientas para capas vectoriales/Enlace espacial (por 
> vecino más cercano)
>
> Te brinda los mismos resultados que el PASO_3 de la respuesta anterior.
>
> Te hago la aclaración puesto que había indicado, en caso de usar 
> Sextante, sería necesario el uso de la calculadora de campos, cosa que 
> no es necesaria.
>
> Te adjunto la imagen de un pequeño y sencillo Modelo_Sextante que 
> resuelve el caso:
>
> Saludos desde Costa Rica..
>
> Gustavo Agüero Córdoba
>
> Consultoría Técnica BíoFísica
>
> Skype: gustavo.aguero.cordoba
>
> Tel: (506)83914009
>
> -----Mensaje original-----
> De: gvsig_usuarios-bounces en listserv.gva.es 
> [mailto:gvsig_usuarios-bounces en listserv.gva.es] En nombre de raul_fb
> Enviado el: viernes, 09 de mayo de 2014 9:31
> Para: gvsig_usuarios en listserv.gva.es
> Asunto: [Gvsig_usuarios] Coordenadas XY extremos lineas
>
> Hola,
>
> Tengo un shape con lineas y me gustaría añadir las coordendas XY de sus
>
> extremos a la tabla, como puedo hacerlo con gvSIG 1.12 o 2.0?
>
> Gracias!
>
> Saludos,
>
> Raúl Faro.
>
> --
>
> View this message in context: 
> http://osgeo-org.1560.x6.nabble.com/Coordenadas-XY-extremos-lineas-tp5139446.html
>
> Sent from the gvSIG usuarios mailing list archive at Nabble.com.
>
> _______________________________________________
>
> gvSIG_usuarios mailing list
>
> gvSIG_usuarios en listserv.gva.es
>
> Para ver histórico de mensajes, editar sus preferencias de usuario o 
> darse de baja en esta lista, acuda a la siguiente dirección:
>
> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios
>
>
>
> _______________________________________________
> gvSIG_usuarios mailing list
> gvSIG_usuarios en listserv.gva.es
>
> Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección:
>
> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://listserv.gva.es/pipermail/gvsig_usuarios/attachments/20140509/c5d655c2/attachment.htm 
------------ próxima parte ------------
Se ha borrado un mensaje que no está en formato texto plano...
Nombre     : no disponible
Tipo       : image/png
Tamaño     : 32567 bytes
Descripción: no disponible
Url        : http://listserv.gva.es/pipermail/gvsig_usuarios/attachments/20140509/c5d655c2/attachment.png 
------------ próxima parte ------------
import gvsig
from geom import *

def main():
    """Obtiene los vertices finales de 
        lineas y los agrega a tabla"""
    #Nuevo nombre para los campos X,Y
    campoX = "Coor_X"
    campoY = "Coor_Y"
    
    layer = gvsig.currentLayer()
    

    schema = layer.getSchema()
    schema.modify()
    schema.append(campoX,"DOUBLE",30)
    schema.append(campoY,"DOUBLE",30)
    layer.edit()
    layer.updateSchema(schema)
    layer.commit()
    features = layer.features()
    for line in features:
        geom = line.geometry()
        vertex = geom.getVertex((geom.numVertices-1))
        x = vertex.getX()
        y = vertex.getY()
        print x,y
        line.edit()
        line.set(campoX, x)
        line.set(campoY, y)
        layer.update(line)
        
    layer.commit()
    


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