[Gvsig_usuarios] Medir capas

Óscar Martínez masquesig en gmail.com
Lun Mayo 12 09:01:33 CEST 2014


Hola buenas,

Estoy casi seguro que habrá una herramienta para esto, espero que 
alguien te pueda ayudar. Mientras, te he hecho un pequeño script en 
python que hace esto (para gvSIG 2x en adelante), si no hay problemas y 
es algo no muy complicado te debería de funcionar sin adaptar nada, lo 
dejo en tus manos por si quieres probar esta alternativa.

Compara las geometrías de una capa (ya sean polígonos, lineas o puntos) 
con las de la siguiente, y hace una selección de las que estén a una 
distancia menor de la que especificas. Solo tienes que cambiar los 
nombres de las capas por los tuyos en el script.

Te adjunto el código y una imagen del resultado que me ha dado.

Un saludo,
         Óscar


El 11/05/2014 15:24, Juan Manuel Gimenez escribió:
> Buenas a todos, tengo dos capas que son lineas, necesitaria que el 
> programa me dijera que lineas de una de las capas esta a menos de 200 
> mts de la otra capa. ¿Eso se puede hacer con el SEXTANTE o con el 
> GVSIG? Muchas gracias por la ayuda.
>
>
> _______________________________________________
> 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/20140512/11da7953/attachment.htm 
------------ próxima parte ------------
Se ha borrado un mensaje que no está en formato texto plano...
Nombre     : inter.png
Tipo       : image/png
Tamaño     : 28408 bytes
Descripción: no disponible
Url        : http://listserv.gva.es/pipermail/gvsig_usuarios/attachments/20140512/11da7953/attachment.png 
------------ próxima parte ------------

from gvsig import *
from geom import *

def main(*args):
    """Seleccionar lineas que estan a 
        menos de cierta distancia"""

    #Datos
    #Tienes que poner el nombre exacto de las
    #capas que aparecen en tu Vista
    
    #nombre de capa donde se van a seleccionar
    capaBase = "test"
    
    #nombre de capa a comparar
    capa2 = "PARQUES.SHP"
    
    #distancia entre geometrias
    distancia = 200

    #Calculos
    view = currentView()
    layer1 = view.getLayer(capaBase)
    features1 = layer1.features()
    layer2 = view.getLayer(capa2)
    features2 = layer2.features()

    for feature1 in features1:
        geom1 = feature1.geometry()
        for feature2 in features2:
            geom2 = feature2.geometry()
            if geom1.distance(geom2) < distancia:
                layer1.select(feature1)


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