[Gvsig_desarrolladores] duda con script en python

Francisco Puga fpuga en icarto.es
Lun Abr 20 19:55:44 CEST 2015


Te faltan al menos dos cosas. Escribo de cabeza así que puede haber algún
error:

* Comitear los cambios a la capa destino. Fuera del for tienes que hacer
un: output.commit()
* Añadir la nueva geometría variable "intersect" en tu casa a la capa
destino: output.append({"GEOMETRY":intersect})

* Además sólo deberías crear una nueva geometría cuando realmente se
produzca una intersección

if g1.intersects(g2):
  intersect = g1.intersection (g2)
  output.append({"GEOMETRY":intersect})

Y por último no estoy seguro de que el append permita crear un nuevo
feature sólo pasándole el valor de GEOMETRY, si no es así, el código sería
por ejemplo:

if g1.intersects(g2):
  values = feature.getValues()
  intersect = g1.intersection (g2)
  values["GEOMETRY"] = intersect
  output.append({"GEOMETRY":intersect})

Esto te crearía el nuevo registro con los valores de una de los registros
que intersecan con geometría sólo la parte que interseca.

Échale un ojo a este script que te puede dar alguna pista:

http://outreach.gvsig.org/scripts/buffer-intersection-condition-and-new-field-spatial-info

El 20 de abril de 2015, 12:24, Juan Pedro Ruiz Castellano <
juanpedro.ruizcastellano en gmail.com> escribió:

> Hola amigos,
> estoy haciendo mis primeros pinitos con el python y gvsig. Me ha surgido
> un problema con un script que estoy haciendo.
> Es muy simple, consiste en intersectar los polígonos de una capa y generar
> un shapefile nuevo con las áreas de solape, para identificar los errores.
> Necesito generar esta capa, por lo que no me vale que me señale los solapes
> como hace la herramienta de topología. Además es una excusa perfecta para
> practicar con gvsig el tema de la programación.
>
> El script: es el siguiente;
> El problema me surge una vez que tengo las intersecciones creadas y quiero
> generar el nuevo shape. He probado pero no lo consigo.
>
> ¿Alguién me puede orientar?
>
> Muchas gracias.
>
> from gvsig import *
> from geom import *
>
> def main():
>     path = "D:\\JJV_2E\\CURSO\\salida.shp"
>     layer = currentLayer() # active layer
>     ### proceso
>     schema = layer.getSchema()
>     newSchema = createSchema(schema)
>     CRS = currentView().getProjection()
>     output = createShape(newSchema, path, CRS=CRS,geometryType=POLYGON)
>     features = layer.features()
>     for feature in features:
>       g1 = feature.geometry()
>       for feature2 in features:
>         values = feature.getValues()
>         g2 = feature.geometry()
>         intersect = g1.intersection (g2)
>
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores 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_desarrolladores
>
>


-- 
Francisco Puga
iCarto | Innovación, Cooperación, Cartografía y Territorio S.L.
http://www.icarto.es/

c/ Rafael Alberti nº 13 – 1º D
15008 A Coruña
Galicia (Spain)
+34 881927808

Este correo electrónico contiene información estrictamente confidencial y
es de uso exclusivo del destinatario, quedando prohibida a cualquier otra
persona su revelación, copia, distribución, o el ejercicio de cualquier
acción relativa a su contenido. Si ha recibido este mensaje por error, por
favor conteste a su remitente mediante correo electrónico y proceda a
borrarlo de su sistema.

Sus datos personales serán tratados de forma confidencial y no serán
cedidos a terceros ajenos a ICARTO. En cualquier caso, podrá ejercer los
derecho de oposición, acceso, rectificación y cancelación de acuerdo con lo
establecido en la Ley Orgánica 15/99, de 13 de diciembre, de Protección de
Datos de Carácter Personal dirigiéndose a Innovación, Cooperación,
Cartografía e Territorio, SL. (ICARTO) en la dirección postal a C/ Rafael
Alberti, nº 13, 1ºD, 15.008 – (A Coruña).
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20150420/6add3da5/attachment.htm 


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