Saludos

Quisiera generar un formato en diseño de mapa que me muestre un predio a escala 
y su informacion alfanumerica, nombres, areas, centroide u otros que me 
extraiga del dbf.

Agradezco de antemano su ayuda.

Luis Castillo
Perú


> Date: Tue, 4 Jun 2013 11:30:43 +0200
> From: jjdelcerro.gv...@gmail.com
> To: gvsig_desarrolladores@listserv.gva.es
> Subject: Re: [Gvsig_desarrolladores] Script para exportar imagenes
> 
> El 03/06/13 17:19, Pablo Alfaro escribió:
> > Hola, como están? Recurro a los desarrolladores de esta lista en busca de 
> > ayuda.
> > Necesito hacer un pequeño script para gvSIG que recorra las capas en la 
> > vista actual, recortando cada una contra una capa especifica (la primera 
> > por ejemplo) y luego exporte cada imagen en una carpeta del disco usando 
> > como nombre de cada imagen el nombre de la capa en cuestión.
> > Básicamente tengo una capa vectorial del contorno de mi país (Uruguay) y 
> > capas vectoriales de polígonos con el valor de varias variables 
> > meteorológicas, querría recortarlas todas contra la capa de Uruguay y 
> > exportar las imágenes una a una.
> > Esto se podría hacer con el lenguaje de scripting de gvSIG? O habría que 
> > desarrollar un plugin para ello?Si se puede hacer con scripting alguien me 
> > podría dar un ejemplo de como hacerlo?Se podría hacer con gvSIG 1.11? Tengo 
> > algunas complicaciones para migrar a gvSIG 2 aún.
> > Muchas gracias y saludosPablo                                         
> > 
> 
> Holas...
> a ver algunas ideas...
> 
> Entiendo que tienes varias capas vectoriales cargadas en una vista
> y quieres recortarlas a una dada y exportar el resultado como imagen.
> 
> 
> Voy a asumir que la capa activa es a la que quiero hacer el recorte.
> 
> Podriamos....
> Generar una capa con el recorte de todas y luego exportar el resultado.
> Para ello, creariamos una capa nueva... (ver por ejemplo el articulo
> del blog "Scripting: Generar una poligonal a partir de un rumbo"[1] para ver
> como hacerlo) y en ella insertariamos el recorte.
> 
> [1] Scripting: Generar una poligonal a partir de un rumbo
>     
> http://blog.gvsig.org/2012/12/06/scripting-generar-una-poligonal-a-partir-de-un-rumbo/
> 
> Una vez tengamos la capa creada, recorreriamos la lista de capas de la vista, 
> iriamos calculando
> el recorte y escribiendo el resultado en la capa recien creada.
> 
>   capa_recorte = currentLayer()
> 
>   # Aqui vendria la creacion de la capa
>   ...
>   schema_capa_resultado = ...
>   ...
>   shape_resultado = gvsig.createShape(
>     schema_capa_resultado,
>     "/tmp/capa_resultado_del_recorte.shp",
>     CRS=capa_recorte.getProjection(),
>     geometryType=geom.POLYGON
>   )
>   # Y una vez creada la llenamos con el recorte
>   bbox = capa_activa.getFullEnvelope().getGeometry()
> 
>   vista = currentView()
>   for capa in vista.getLayers():
>     recortar(capa_resultado, bbox, capa)
>   capa_resultado.commit()
> 
> Y la funcion recortar podia ser algo como:
> 
>   def recortar(capa_resultado, bbox, capa_a_recortar):
>       features = layer.features()
>       for feature in features:
>         geom = feature.geometry().intersection(bbox)
>         values = dict()
>         values["GEOM"] = geom
>         values["OTRO_VALOR1"] = ...
>         values["OTRO_VALOR2"] = ...
>         capa_resultado.append(values)
> 
> Por ultimo podriamos ocultar las capas que haya en la vista, añadir la nueva 
> capa a la vista,
> centrar la vista en la capa y exportar la imagen:
> 
>   from org.gvsig.andami import PluginsLocator
> 
>   # Ocultamos las capas
>   for capa in vista.getLayers():
>     capa.setVisible(false)
> 
>   # Añadimos nuestra capa a la vista
>   vista.addLayer(capa_resultado)
> 
>   # y la centramos y exportamos
>   actions=PluginsLocator.getActionInfoManager()
>   a = actions.getAction("view-navigation-zoom-all")
>   a.execute()
> 
> Oh!... un error... no estan correctamente registradas las acciones de 
> raster...
> bueno eso complica un poco la cosa ya que no podemos recuperar la accion de
> salvar a rastar tan facilmente pero podriamo rodearlo con algo como....
> 
>   def obtenerAccionDeSalvarAraster(actions):
>     for a in actions.getActions():
> ...   if a.getCommand() == "SaveViewToImageRaster":
> ...           return a
> 
> Y luego usamos ya nuestra funcion
> 
>   a = obtenerAccionDeSalvarAraster(actions)
>   a.execute()
> 
> Bueno, tomo nota de lo de las acciones de raster para arreglarlo.
> 
> He picado las ideas sueltas, faltaria juntarlas en un script y
> probar.
> 
> Tambien he usado una aproximacion simplona del recorte, ya que estoy
> recortando al Envelope/BBOX de la capa, cuando igual te interesa
> recortar a la "forma" exacta de la capa. Si quieres hacer eso, seria
> algo mas complejo y costoso (en tiempo de ejecucion) pero tambien se
> podria hacer... si es eso lo que quieres, lo comentas y vemos como
> se podria hacer... basicamente seria cargando la capa de recorte en
> memoria o recorriendola "muchisimas veces" cada vez que se ejecute
> nuestra funcion de recorte, supongo que si sabes que tamaño puede
> tener y no es muy grande lo suyo seria cargarla en memoria y si crees
> que puede ser muy grande, pues recorrecla muchas veces.
> 
> Tambien he asumido que todas las capas son poligonos... si no son todas
> del mismo tipo, igual la capa resultante tendriamos que almacenarla en
> un dxf en lugar de un shape....
> 
> Bueno, ya vas comentado si te parece interesante....
> 
> Por cierto... todo lo que he comentado es para gvSIG 2, no iria en
> la 1.X
> 
> Oh!, releyendo tu mensaje.... no habia entendido bien lo que pedias....
> bueno.... algo parecido se puede hacer a partir de las ideas que
> pongo.
> 
> un saludo
> Joaquin
> 
> 
> 
> 
> 
> > 
> > 
> > _______________________________________________
> > gvSIG_desarrolladores mailing list
> > gvSIG_desarrolladores@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
> 
> 
> -- 
> --------------------------------------
> Joaquin Jose del Cerro
> Development and software arquitecture manager.
> jjdelce...@gvsig.com
> gvSIG Association
> www.gvsig.com
> www.gvsig.org
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores@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
                                                                                
  
_______________________________________________
gvSIG_desarrolladores mailing list
gvSIG_desarrolladores@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

Responder a