[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