[Gvsig_usuarios] Coordenadas XY extremos lineas
Óscar Martínez
masquesig en gmail.com
Sab Mayo 10 16:34:17 CEST 2014
Hola,
Ese cambio es sencillo de añadir, te he vuelto a adjuntar el código.
Ahora te añade directamente cuatro campos con las coordenadas del
vértice inicial y final. Te repito lo de que hagas alguna prueba primero
con una copia de seguridad, no vaya a ser que te de algún problema.
Un placer ayudar.
Un saludo,
Óscar
El 10/05/2014 9:53, Raúl Faro escribió:
>
> Hola,
>
> Lo pruebo y a ver como va la aplicación, en principio con esto tendría
> un extremo de las líneas, luego tendría que hacer otro shape con las
> líneas en sentido inverso, repetir el proceso y a continuación unir
> las dos tablas, una con las coordenadas inicial y otra con las
> coordenadas final.
>
> Muchas gracias por todo!
>
> Saludos,
>
> *Raúl Faro Ballarín *
>
> *Ingeniero Técnico en Topografía***
>
> Móvil: 626 91 47 23
>
> rfaro en farvectopografia.com <mailto:rfaro en farvectopografia.com>
>
> *De:*gvsig_usuarios-bounces en listserv.gva.es
> [mailto:gvsig_usuarios-bounces en listserv.gva.es] *En nombre de *Óscar
> Martínez
> *Enviado el:* viernes, 09 de mayo de 2014 21:30
> *Para:* gvsig_usuarios en listserv.gva.es
> *Asunto:* Re: [Gvsig_usuarios] Coordenadas XY extremos lineas
>
> 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>
> [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
> <mailto: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 <mailto: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 <mailto: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/20140510/7d768c38/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 : 3552 bytes
Descripción: no disponible
Url : http://listserv.gva.es/pipermail/gvsig_usuarios/attachments/20140510/7d768c38/attachment.png
------------ 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/20140510/7d768c38/attachment-0001.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 = "X_final"
campoY = "Y_final"
campoXi = "X_inicial"
campoYi = "Y_inicial"
layer = gvsig.currentLayer()
schema = layer.getSchema()
schema.modify()
schema.append(campoXi,"DOUBLE", 30)
schema.append(campoYi,"DOUBLE", 30)
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))
vertexi = geom.getVertex(0)
x,y = vertex.getX(), vertex.getY()
xi,yi = vertexi.getX(), vertexi.getY()
line.edit()
line.set(campoX, x)
line.set(campoY, y)
line.set(campoXi, xi)
line.set(campoYi, yi)
layer.update(line)
layer.commit()
Más información sobre la lista de distribución gvSIG_usuarios