<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p>Buenas!</p>
<p><br>
</p>
<p>Por partes..</p>
<p><br>
</p>
<p>Para eliminar una capa:</p>
<p><br>
</p>
<p> # Eliminar layer de una Vista<br>
#
<a class="moz-txt-link-freetext" href="http://downloads.gvsig.org/download/gvsig-desktop-testing/dists/2.3.0/javadocs/html/org/gvsig/fmap/mapcontext/layers/FLayers.html">http://downloads.gvsig.org/download/gvsig-desktop-testing/dists/2.3.0/javadocs/html/org/gvsig/fmap/mapcontext/layers/FLayers.html</a><br>
layers = currentView().getLayers()<br>
layers.removeLayer("nuevacapa") # se puede eliminar por
nombre, por indice, etc..<br>
</p>
<p><br>
</p>
<p>Si lo que quieres hacer es cambiar el nombre del TOC se haría
con:</p>
<p>(Añadiendo al final del código del otro día)</p>
<p><br>
</p>
<p> shp2[0].setName("nueva0")<br>
shp2[1].setName("nueva1")<br>
shp2[2].setName("nueva2")<br>
</p>
<br>
Si es otra cosa la que quieres cambiar comentamelo.<br>
<br>
Para añadir una simbologia por intervalos por ejemplo está este
script que es sencillo de entender me parece, es para crear una
simbologia por intervalos a partir de un campo:<br>
<br>
<br>
# encoding: utf-8<br>
<br>
from gvsig import *<br>
from gvsig import geom<br>
from java.awt import Color<br>
from org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl
import VectorialIntervalLegend<br>
<br>
def main(*args):<br>
""" Create interval legend """<br>
#
<a class="moz-txt-link-freetext" href="http://downloads.gvsig.org/download/web/html/es/html/scripting_devel_guide/2.3/leyendas.html">http://downloads.gvsig.org/download/web/html/es/html/scripting_devel_guide/2.3/leyendas.html</a><br>
<br>
# Seleccionar el Tipo de geometria<br>
#
<a class="moz-txt-link-freetext" href="http://downloads.gvsig.org/download/web/html/es/html/scripting_devel_guide/2.3/modulo_geom.html">http://downloads.gvsig.org/download/web/html/es/html/scripting_devel_guide/2.3/modulo_geom.html</a><br>
vil = VectorialIntervalLegend(geom.POLYGON)<br>
<br>
vil.setStartColor(Color.red) # color inicio<br>
vil.setEndColor(Color.blue) # color final<br>
vil.setIntervalType(1) # Rango<br>
store = currentLayer().getFeatureStore() # store de los
datos a aplicar la simbologia<br>
ii = vil.calculateIntervals(store, "ID", 5, geom.POLYGON) #
Calculo de la simbologia para ese store e intervalos. (store, Campo,
numero intervalos, tipo)<br>
<br>
vil.setIntervals(ii) # aplicamos los intervalos a la
simbologia<br>
<br>
currentLayer().setLegend(vil) # aplicamos la simbologia a la
capa<br>
<br>
Puedes encontrar otro tipo de leyendas e ir probando:
<a class="moz-txt-link-freetext" href="http://downloads.gvsig.org/download/gvsig-desktop-testing/dists/2.3.0/javadocs/html/org/gvsig/symbology/fmap/mapcontext/rendering/legend/impl/AbstractIntervalLegend.html">http://downloads.gvsig.org/download/gvsig-desktop-testing/dists/2.3.0/javadocs/html/org/gvsig/symbology/fmap/mapcontext/rendering/legend/impl/AbstractIntervalLegend.html</a><br>
<br>
Nunca he etiquetado desde scripting.. Tendría que preguntar primero
para echarte una mano.<br>
<br>
Para saber si hay una capa activa hay varias formas, depende para lo
que necesites, por lo general esta:<br>
<br>
layers = currentView().getLayers()<br>
print "numero capas activas", len(layers.getActives())<br>
print currentLayer()==None<br>
<br>
if currentLayer()==None:<br>
print "no hay capa activa"<br>
return<br>
<br>
currentLayer.setActive(False)<br>
<br>
Respecto al geoproceso intersección, si cambia el nombre de los
campos es porque necesita hacerlo. Si no me equivoco es cuando se
duplican el mismo nombre de los campos en las capas entrantes. No
hay forma de configurar esto desde fuera. Lo que si que puedes hacer
es hacer un script que te extraiga lo que desees de esa capa o
editarla.<br>
<br>
Creo que no me dejo nada. Espero que te sea de ayuda.<br>
<br>
Saludos,<br>
Óscar<br>
<br>
<div class="moz-cite-prefix">El 27/03/2017 a las 8:29, Ovidio
Ribeira escribió:<br>
</div>
<blockquote
cite="mid:AM5PR0202MB2692383593ADD5631A76F9C9D7330@AM5PR0202MB2692.eurprd02.prod.outlook.com"
type="cite">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
<div id="divtagdefaultwrapper"
style="font-size:12pt;color:#000000;font-family:Calibri,Arial,Helvetica,sans-serif;"
dir="ltr">
<div>
<p style="line-height: 100%; margin-bottom: 0cm;">Buenos días
Oscar, gracias por tu ayuda y tu tiempo, con tus
explicaciones conseguí lo que quería, pero para mejorar el
script so lo me faltaría,: poder eliminar de la TOC una capa
que ya no me interesa, lo que hice fue ponerla como no
visible,. Tampoco consigo renombrar la capa de salida del
geoproceso reproyectar, aquí lo que hago es no añadir
ninguna con el geoproceso y despues anadir a la TOC la n.º
0. Me seria bueno poder añadir una simbología y un
etiquetado por selección a la nueva capa desde el script.
Para seleccionar una capa uso:
currentLayer().setActive(False) y s1.setActive(True)
pero si al principio no hay ninguna capa activa me da un
error, como se puede saber si hay alguna capa activa. Y por
último la capa de salida en el geoproceso intersección
cambia el nombre de los campos, hay alguna manera de que no
lo haga.</p>
<p style="line-height: 100%; margin-bottom: 0cm;">Saludos y si
puedes la ayudar será muy bien venida .
</p>
<p style="line-height: 100%; margin-bottom: 0cm;"><br>
</p>
</div>
<p><br>
</p>
<br>
<br>
<div style="color: rgb(0, 0, 0);">
<hr tabindex="-1" style="width: 98%; display: inline-block;">
<div id="divRplyFwdMsg" dir="ltr"><font style="font-size:
11pt;" face="Calibri, sans-serif" color="#000000"><b>De:</b>
<a class="moz-txt-link-abbreviated" href="mailto:gvsig_usuarios-bounces@listserv.gva.es">gvsig_usuarios-bounces@listserv.gva.es</a>
<a class="moz-txt-link-rfc2396E" href="mailto:gvsig_usuarios-bounces@listserv.gva.es"><gvsig_usuarios-bounces@listserv.gva.es></a> en nombre
de Oscar Martinez <a class="moz-txt-link-rfc2396E" href="mailto:omartinez@gvsig.com"><omartinez@gvsig.com></a><br>
<b>Enviado:</b> viernes, 24 de marzo de 2017 14:30<br>
<b>Para:</b> <a class="moz-txt-link-abbreviated" href="mailto:gvsig_usuarios@listserv.gva.es">gvsig_usuarios@listserv.gva.es</a><br>
<b>Asunto:</b> Re: [Gvsig_usuarios] Libreria gvpy</font>
<div> </div>
</div>
<div>
<p>Buenas,</p>
<p><br>
</p>
<p>Los algortimos gvSIG-* funcionan de manera algo
diferente. Por ahora, siempre que ejecutes uno de estos
algoritmos tienes que especificar el path que quieres
usar. En gvpy se especifica añadiendo un parámetro PATH.
Para esto ya teníamos una función preparada en gvSIG
llamada getTempFile("nombre", "extension", "carpeta
destino"), siendo el último parámetro opcional. Esto imita
el funcionamiento que tienen el resto de geoprocesos.</p>
<p><br>
</p>
<p>También ten en cuenta que este geoproceso reproject
especifica y crea tres capas de salida, aunque luego solo
vayas a usar una, hay que indicar los paths.</p>
<p><br>
</p>
<p>Te adjunto un ejemplo de todo esto.</p>
<p><br>
</p>
<p>Espero te sirva de ayuda, cualquier cosa nos comentas.</p>
<p><br>
</p>
<p>Saludos</p>
<p><br>
</p>
<p><a moz-do-not-send="true" class="moz-txt-link-freetext"
id="LPlnk447514"
href="https://gist.github.com/oscar9/43523df6c76056cbde97f4a23f967ffe"
previewremoved="true">https://gist.github.com/oscar9/43523df6c76056cbde97f4a23f967ffe</a></p>
<p><br>
</p>
<pre># encoding: utf-8</pre>
<pre>import gvsig</pre>
<pre>from gvsig import *</pre>
<pre>from gvsig.libs import gvpy</pre>
<pre>reload(gvpy)</pre>
<pre>import os</pre>
<pre>def main(*args):</pre>
<pre> </pre>
<pre> gvpy.algHelp("gvSIG-reproject")</pre>
<pre> """</pre>
<pre> * Algorithm help: Reproyección</pre>
<pre> * Usage: runalg( "gvSIG-reproject",</pre>
<pre> LAYER[Vector Layer],</pre>
<pre> SELECTED_GEOM[Boolean],</pre>
<pre> DST_PROJECTION[String],</pre>
<pre> RESULT_POL[output vector layer],</pre>
<pre> RESULT_LINE[output vector layer],</pre>
<pre> RESULT_POINT[output vector layer],</pre>
<pre> );</pre>
<pre> """</pre>
<pre> #Funtion tempfile</pre>
<pre> n1 = getTempFile("new", ".shp")</pre>
<pre> print n1</pre>
<pre> #C:\Users\Versus\AppData\Local\Temp\/tmp-andami\new-58d51c6267b.shp</pre>
<pre> </pre>
<pre> n2 = getTempFile("new", ".shp", r"C:\resultados")</pre>
<pre> print n2</pre>
<pre> #C:\resultados\new-58d51c62686.shp</pre>
<pre> </pre>
<pre> # Ejemplo</pre>
<pre> shp1 = gvpy.runalg("randomvector",10,0)</pre>
<pre> shp2 = gvpy.runalg("gvSIG-reproject", shp1, "false", "EPSG:25829", PATH=[getTempFile("new1", ".shp"),getTempFile("new2", ".shp"),getTempFile("new3", ".shp")])</pre>
<pre> print shp2</pre>
<pre> </pre>
<pre> # Salida multiple en forma de lista: [new1-58d51c7f20ed, new2-58d51c7f20ed, new3-58d51c7f20ed]</pre>
<pre> print shp2[0].getGeometryType().getName()</pre>
<pre> print shp2[1].getGeometryType().getName()</pre>
<pre> print shp2[2].getGeometryType().getName()</pre>
<pre> pass</pre>
<br>
<br>
<div class="moz-cite-prefix">El 24/03/2017 a las 13:00,
Ovidio Ribeira escribió:<br>
</div>
<blockquote type="cite">
<div id="divtagdefaultwrapper" style="color: rgb(0, 0, 0);
font-family: Calibri,Arial,Helvetica,sans-serif;
font-size: 12pt;" dir="ltr">
<div id="divtagdefaultwrapper" style="color: rgb(0, 0,
0); font-family: Calibri,Arial,Helvetica,sans-serif;
font-size: 12pt;" dir="ltr">
<p><span>Hola, usando la libreria gvpy en un script y
al ejecutarlo la segunda vez me da el error de que
el fichero de salida existe, utilizando el
siguente comando:</span></p>
<p><span>gvpy.runalg("gvSIG-reproject", "Area",
"false", "EPSG:25829", "#", "#", "#",)</span></p>
<p><span>Con esta outra linea funciona sin problemas
creando varios ficheros temporales:
<span>gvpy.runalg("randomvector",10,0),</span></span></p>
<p><span><span>Tambien necesito ayuda para capturar
solo la capa de polígonos del geoproceso
gvsig-reproject.</span></span></p>
<p><span><span>Gracias y saludos.</span></span></p>
<p><br>
</p>
</div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre>_______________________________________________
gvSIG_usuarios mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:gvSIG_usuarios@listserv.gva.es">gvSIG_usuarios@listserv.gva.es</a>
Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección:
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios">https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios</a>
</pre>
</blockquote>
<br>
</div>
</div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
gvSIG_usuarios mailing list
<a class="moz-txt-link-abbreviated" href="mailto:gvSIG_usuarios@listserv.gva.es">gvSIG_usuarios@listserv.gva.es</a>
Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección:
<a class="moz-txt-link-freetext" href="https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios">https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios</a>
</pre>
</blockquote>
<br>
</body>
</html>