<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">&lt;gvsig_usuarios-bounces@listserv.gva.es&gt;</a> en nombre
              de Oscar Martinez <a class="moz-txt-link-rfc2396E" href="mailto:omartinez@gvsig.com">&lt;omartinez@gvsig.com&gt;</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>