<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>Buenas,</p>
    <p>Creo que ya teníamos localizada esa limitación del ángulo según
      el etiquetado que eligieras, me la apunto para echarle un vistazo.</p>
    <p>Respecto a los del grupo de capas he preparado el siguiente
      script, creo que hace lo que deseas hacer.</p>
    <p><a class="moz-txt-link-freetext" href="https://gist.github.com/oscar9/293550287ff9e933d1d2d6e9719c758f">https://gist.github.com/oscar9/293550287ff9e933d1d2d6e9719c758f</a></p>
    <p>He insertado un pequeño comentario de un método nuevo que vamos a
      crear para la 2.5 final que facilite esa creación del flayers y
      que no se le tengan que asignar esos parámetros.</p>
    <p>Creo que con esto resolvíamos todas las dudas, ya nos dices si
      algo no funciona o falta algo.</p>
    <p>Saludos!<br>
    </p>
    <div class="moz-cite-prefix">El 29/10/19 a las 13:59, Montes Cámara,
      Victor escribió:<br>
    </div>
    <blockquote type="cite"
cite="mid:1663462614.13330241.1572353980905.JavaMail.zimbra@alicante-ayto.es">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div style="font-family: times new roman, new york, times, serif;
        font-size: 12pt; color: #000000">
        <div>Hola Óscar,</div>
        <div><br>
        </div>
        <div>Funciona bien. He añadido las llamadas a los métodos
          correspondientes para cambiar los parámetros de fuente:</div>
        <div><br>
        </div>
        <div>
          <pre data-mce-style="margin: 0px;" style="margin: 0px;">textSymbol.setFont(Font("Arial", Font.BOLD, 10))
textSymbol.setFontSize(10)
textSymbol.setTextColor(Color(r,g,b)) # RGB</pre>
          <p style="margin: 0px;" data-mce-style="margin: 0px;"><br>
          </p>
          <p style="margin: 0px;" data-mce-style="margin: 0px;">Lo que
            he visto es que la clase ITextSymbol (<a
href="http://downloads.gvsig.org/download/gvsig-desktop-testing/dists/2.3.0/javadocs/html/org/gvsig/fmap/mapcontext/rendering/symbols/ITextSymbol.html"
data-mce-href="http://downloads.gvsig.org/download/gvsig-desktop-testing/dists/2.3.0/javadocs/html/org/gvsig/fmap/mapcontext/rendering/symbols/ITextSymbol.html"
              moz-do-not-send="true">http://downloads.gvsig.org/download/gvsig-desktop-testing/dists/2.3.0/javadocs/html/org/gvsig/fmap/mapcontext/rendering/symbols/ITextSymbol.html</a>)
            no tiene ningún método para establecer el ángulo del texto.</p>
          <p style="margin: 0px;" data-mce-style="margin: 0px;">No es
            muy grave porque lo uso para los números de policía y no me
            importa que no estén girados, lo importante es ponerle el
            origen en el centro.</p>
          <p style="margin: 0px;" data-mce-style="margin: 0px;">Para el
            texto del nombre de calles pasa lo contrario, tengo que usar
            el ángulo, pero no me preocupa el origen. Por lo que al
            final tengo que hacer lo siguiente:</p>
          <p style="margin: 0px;" data-mce-style="margin: 0px;"><br>
          </p>
          <pre data-mce-style="margin: 0px;" style="margin: 0px;">layer.setIsLabeled(True)
symbologyManager = SymbologyLocator.getSymbologyManager()</pre>
          <pre data-mce-style="margin: 0px;" style="margin: 0px;">if nombre_capa == "CALLES":
    labeling = symbologyManager.createDefaultLabelingStrategy()
    labeling.setTextField("TEXTO")
    labeling.setUsesFixedColor(True)
    labeling.setUsesFixedSize(True)
    labeling.setHeightField(None)
    labeling.setRotationField("ANGULO")
    labeling.setFixedColor(Color(r,g,b)) # RGB
    labeling.setFont(Font("Arial", Font.BOLD, 15))
    labeling.setReferenceSystem(0) # WORLD=0, PAPER=1
    labeling.setFixedSize(15)
    labeling.setUnit(-1) # PIXELS
    labeling.setReferenceSystem(1)</pre>
          <pre data-mce-style="margin: 0px;" style="margin: 0px;">    layer.setLabelingStrategy(labeling)</pre>
          <pre data-mce-style="margin: 0px;" style="margin: 0px;">
elif nombre_capa == "NUMEROS":</pre>
          <pre data-mce-style="margin: 0px;" style="margin: 0px;">    glf = GeneralLabelingFactory()
    gls = glf.createStrategy(layer, None, None, None)</pre>
          <pre data-mce-style="margin: 0px;" style="margin: 0px;">    placementc = gls.getPlacementConstraints()
    placementc.setPlacementMode(IPlacementConstraints.ON_TOP_OF_THE_POINT)</pre>
          <pre data-mce-style="margin: 0px;" style="margin: 0px;">    defaultLabel = symbologyManager.createDefaultLabel()
    defaultLabel.setLabelExpressions(["TEXTO"])
    textSymbol = symbologyManager.createSimpleTextSymbol()
    textSymbol.setFont(Font("Arial", Font.BOLD, 10))
    textSymbol.setFontSize(10)
    textSymbol.setTextColor(Color(r,g,b)) # RGB
    textSymbol.setDrawWithHalo(True)
    textSymbol.setHaloColor(Color.WHITE)
    textSymbol.setHaloWidth(2)
    defaultLabel.setTextSymbol(textSymbol)
    resp = gls.getLabelingMethod() #ILabelingMethod
    resp.addLabelClass(defaultLabel)
    gls.setLabelingMethod(resp)
    layer.setLabelingStrategy(gls)</pre>
        </div>
        <p>Pasa como al hacerlo en modo diseño, si el ángulo es
          obligatorio tengo que utilizar el modo "Atributos de la
          etiqueta definidos en tabla", aunque no pueda cambiar el
          origen, y si es necesario cambiar el origen hay que usar el
          modo "Etiquetas definidas por el usuario", aunque no puede
          establecer un ángulo.</p>
        <p>Lo que me falta ahora es agrupar capas. ¿Alguna idea?</p>
        <p>Muchas gracias.</p>
        <p>Un saludo,</p>
        <p>Víctor Montes.</p>
        <hr id="zwchr">
        <div
style="color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;"><b>De:
          </b>"Óscar Martínez" <a class="moz-txt-link-rfc2396E" href="mailto:omartinez@gvsig.com">&lt;omartinez@gvsig.com&gt;</a><br>
          <b>Para: </b>"Montes Cámara, Victor"
          <a class="moz-txt-link-rfc2396E" href="mailto:victor.montes@alicante-ayto.es">&lt;victor.montes@alicante-ayto.es&gt;</a><br>
          <b>CC: </b>"Lista de Desarrolladores de gvSIG"
          <a class="moz-txt-link-rfc2396E" href="mailto:gvsig_desarrolladores@listserv.gva.es">&lt;gvsig_desarrolladores@listserv.gva.es&gt;</a><br>
          <b>Enviados: </b>Lunes, 28 de Octubre 2019 15:58:08<br>
          <b>Asunto: </b>Re: [Gvsig_desarrolladores] Establecer
          propiedades de capas<br>
          <div><br>
          </div>
          <div dir="ltr">Buenas,
            <div>Aquí te he puesto un ejemplo de lo que sería establecer
              un etiquetado avanzado, con la colocación sobre el punto,
              con una expresión de etiquetado,si solo quieres por un
              campo sería algo como (["CAMPO1"]) y lo del halo con un
              color y tamaño.</div>
            <div><a
                href="https://gist.github.com/oscar9/5393823cb2d49ef9467b932fbf50ee29"
                target="_blank" moz-do-not-send="true">https://gist.github.com/oscar9/5393823cb2d49ef9467b932fbf50ee29</a><br>
            </div>
            <div>Ya me comentas si te funciona bien.</div>
            <div>Saludos,</div>
            <div>Óscar</div>
            <div>PD: Lo envío también a las listas</div>
          </div>
          <br>
          <div class="gmail_quote">
            <div dir="ltr" class="gmail_attr">El mié., 23 oct. 2019 a
              las 13:49, Montes Cámara, Victor (&lt;<a
                href="mailto:victor.montes@alicante-ayto.es"
                target="_blank" moz-do-not-send="true">victor.montes@alicante-ayto.es</a>&gt;)
              escribió:<br>
            </div>
            <blockquote class="gmail_quote" style="margin:0px 0px 0px
              0.8ex;border-left:1px solid
              rgb(204,204,204);padding-left:1ex">
              <div>
                <div style="font-family:&quot;times new
                  roman&quot;,&quot;new
                  york&quot;,times,serif;font-size:12pt;color:rgb(0,0,0)">
                  <div>De la segunda parte, realmente lo que más te
                    interesa es situar la etiqueta sobre el punto, es
                    decir la opción siguiente de las propiedades de
                    colocación:</div>
                  <div><br>
                  </div>
                  <div><img src="cid:part4.5AEA570B.139347D2@gvsig.com"
                      class=""></div>
                  <div><br>
                  </div>
                  <hr id="gmail-m_9150261665036347698zwchr">
                  <div
style="color:rgb(0,0,0);font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt"><b>De:
                    </b>"Montes Cámara, Victor" &lt;<a
                      href="mailto:victor.montes@alicante-ayto.es"
                      target="_blank" moz-do-not-send="true">victor.montes@alicante-ayto.es</a>&gt;<br>
                    <b>Para: </b>"Lista de Desarrolladores de gvSIG"
                    &lt;<a
                      href="mailto:gvsig_desarrolladores@listserv.gva.es"
                      target="_blank" moz-do-not-send="true">gvsig_desarrolladores@listserv.gva.es</a>&gt;<br>
                    <b>CC: </b><a href="mailto:omartinez@gvsig.com"
                      target="_blank" moz-do-not-send="true">omartinez@gvsig.com</a><br>
                    <b>Enviados: </b>Miércoles, 23 de Octubre 2019
                    11:01:27<br>
                    <b>Asunto: </b>Re: [Gvsig_desarrolladores]
                    Establecer propiedades de capas<br>
                    <div><br>
                    </div>
                    <div style="font-family:&quot;times new
                      roman&quot;,&quot;new
                      york&quot;,times,serif;font-size:12pt;color:rgb(0,0,0)">
                      <div><br>
                      </div>
                      <div>Me contesto yo mismo,</div>
                      <div><br>
                      </div>
                      <div>Para la primera parte, siguiendo el ejemplo
                        en <a
href="http://osgeo-org.1560.x6.nabble.com/Re-Etiquetas-desde-scripting-td5400766.html"
                          target="_blank" moz-do-not-send="true">http://osgeo-org.1560.x6.nabble.com/Re-Etiquetas-desde-scripting-td5400766.html</a> sería</div>
                      <div><br>
                      </div>
                      <div>
                        <p style="margin:0px">symbologyManager =
                          SymbologyLocator.getSymbologyManager()<br>
                          labeling =
                          symbologyManager.createDefaultLabelingStrategy()</p>
                        <p style="margin:0px"><br>
                          labeling.setTextField("TEXTO")<br>
                          labeling.setUsesFixedColor(True)<br>
                          labeling.setUsesFixedSize(True)<br>
                          labeling.setHeightField(None)<br>
                          labeling.setRotationField("ANGULO")<br>
                          labeling.setFixedColor(Color(255,255,255)) #
                          RGB<br>
                          labeling.setFont(Font("Arial", Font.PLAIN,
                          12))<br>
                          labeling.setReferenceSystem(0) # WORLD=0,
                          PAPER=1<br>
                          labeling.setFixedSize(15)<br>
                          labeling.setUnit(-1) # PIXELS<br>
                          <br>
                          layer.setLabelingStrategy(labeling)</p>
                      </div>
                      <div>layer.setIsLabeled(True)</div>
                      <div><br>
                      </div>
                      <div>Voy con la segunda parte.</div>
                      <hr id="gmail-m_9150261665036347698zwchr">
                      <div
style="color:rgb(0,0,0);font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt"><b>De:
                        </b>"Montes Cámara, Victor" &lt;<a
                          href="mailto:victor.montes@alicante-ayto.es"
                          target="_blank" moz-do-not-send="true">victor.montes@alicante-ayto.es</a>&gt;<br>
                        <b>Para: </b>"Lista de Desarrolladores de
                        gvSIG" &lt;<a
                          href="mailto:gvsig_desarrolladores@listserv.gva.es"
                          target="_blank" moz-do-not-send="true">gvsig_desarrolladores@listserv.gva.es</a>&gt;<br>
                        <b>CC: </b><a href="mailto:omartinez@gvsig.com"
                          target="_blank" moz-do-not-send="true">omartinez@gvsig.com</a><br>
                        <b>Enviados: </b>Miércoles, 23 de Octubre 2019
                        10:13:20<br>
                        <b>Asunto: </b>Re: [Gvsig_desarrolladores]
                        Establecer propiedades de capas<br>
                        <div><br>
                        </div>
                        <div style="font-family:&quot;times new
                          roman&quot;,&quot;new
                          york&quot;,times,serif;font-size:12pt;color:rgb(0,0,0)">
                          <div><br>
                          </div>
                          <div>Gracias Óscar,</div>
                          <div><br>
                          </div>
                          <div>Sí, eso es sencillo, ya lo había
                            descubierto.</div>
                          <div>Ahora estoy con el tema del etiquetado.</div>
                          <div><br>
                          </div>
                          <div>Tengo una capa de calles donde quiero
                            poner como etiqueta un campo definido en
                            tabla, el ángulo otro campo, tamaño y
                            negrita.</div>
                          <div>Equivalente a lo siguiente en modo
                            diseño:</div>
                          <div><br>
                          </div>
                          <div><img
                              src="cid:part12.1A710147.C2CE5DAD@gvsig.com"
                              class=""></div>
                          <div><br>
                          </div>
                          <div>También tengo una capa de números de
                            policía donde quiero establecer unas
                            propiedades concretas, que en modo diseño
                            establecería de la siguiente manera:</div>
                          <div>"Etiquetas definidas por el usuario",
                            "Etiquetar todas las entidades de la misma
                            manera" y las siguientes propiedades:</div>
                          <div><br>
                          </div>
                          <div><img
                              src="cid:part13.C1946C08.31B0661B@gvsig.com"
                              class=""></div>
                          <div><br>
                          </div>
                          <div>Y eligiendo un campo de tabla para
                            visualizar.</div>
                          <div><br>
                          </div>
                          <div>Por ahora he conseguido activar el
                            etiquetado con la instrucción:</div>
                          <div><br>
                          </div>
                          <div>layer.setIsLabeled(1)</div>
                          <div><br>
                          </div>
                          <div>Para lo demás supongo que habrá que
                            utilizar los métodos setLabelingStrategy o
                            drawLabels, pero no tengo claro como.
                            <pre style="font-size:1.3em;color:rgb(53,56,51)"><span style="color:rgb(0,0,0);font-family:&quot;times new roman&quot;,&quot;new york&quot;,times,serif;font-size:12pt">Un saludo,</span></pre>
                          </div>
                          <div>Víctor Montes.</div>
                          <hr id="gmail-m_9150261665036347698zwchr">
                          <div
style="color:rgb(0,0,0);font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt"><b>De:
                            </b>"Óscar Martínez" &lt;<a
                              href="mailto:omartinez@gvsig.com"
                              target="_blank" moz-do-not-send="true">omartinez@gvsig.com</a>&gt;<br>
                            <b>Para: </b>"gvsig desarrolladores" &lt;<a
href="mailto:gvsig_desarrolladores@listserv.gva.es" target="_blank"
                              moz-do-not-send="true">gvsig_desarrolladores@listserv.gva.es</a>&gt;<br>
                            <b>Enviados: </b>Lunes, 21 de Octubre 2019
                            17:54:47<br>
                            <b>Asunto: </b>Re: [Gvsig_desarrolladores]
                            Establecer propiedades de capas<br>
                            <div><br>
                            </div>
                            <p>Buenas,</p>
                            <p>Para establecer los límites del zoom se
                              hace directamente sobre la capa. Solo son
                              necesarias dos líneas.</p>
                            <p>  layer.setMinScale(integer)<br>
                                layer.setMaxScale(integer)</p>
                            <p>Por ejemplo en el siguiente script se
                              crea una capa de puntos y se establece que
                              solo sea visible por debajo de 1:5.000 y
                              por encima de 1:1.000</p>
                            <pre># encoding: utf-8

import gvsig
from gvsig import geom

def main(*args):

  # Creating new layer
  ft = gvsig.createSchema()
  ft.append("ID", "INTEGER")
  ft.append("GEOMETRY", "GEOMETRY")
  ft.get('GEOMETRY').setGeometryType(geom.POINT,geom.D2)

  layer = gvsig.createShape(ft, prefixname="testScale")
  store = layer.getFeatureStore()
  layer.edit()
  layer.append({"ID":1,"GEOMETRY":geom.createPoint(geom.D2, 10, 20)})
  layer.append({"ID":2,"GEOMETRY":geom.createPoint(geom.D2, 20, 20)})
  layer.append({"ID":3,"GEOMETRY":geom.createPoint(geom.D2, 20, 30)})
  layer.commit()
  gvsig.currentView().addLayer(layer)

  #Change zoom
  layer.setMinScale(1000)
  layer.setMaxScale(5000)

<a href="https://gist.github.com/oscar9/296125be4e58e87d978c578ea3996000" target="_blank" moz-do-not-send="true">https://gist.github.com/oscar9/296125be4e58e87d978c578ea3996000</a>

</pre>
                            <br>
                            <div>El 18/10/19 a las 10:43, Montes Cámara,
                              Victor escribió:</div>
                            <blockquote>
                              <div style="font-family:&quot;times new
                                roman&quot;,&quot;new
                                york&quot;,times,serif;font-size:12pt;color:rgb(0,0,0)">
                                <div>    Buenos días,</div>
                                <div><br>
                                </div>
                                <div>Tengo un desarrollo en el que creo
                                  capas shapefile dinámicamente a partir
                                  de tablas en Oracle Spatial.</div>
                                <div>Me gustaría saber como cambiar, a
                                  través de scripting, las propiedades
                                  de la capa, tales como color,
                                  etiquetas, zoom mínimo o incluso como
                                  agrupar capas.</div>
                                <div><br>
                                </div>
                                <div>Un saludo.</div>
                                <div>Víctor Montes</div>
                              </div>
                              <br>
                              <fieldset></fieldset>
                              <pre>_______________________________________________
gvSIG_desarrolladores mailing list
<a href="mailto:gvSIG_desarrolladores@listserv.gva.es" target="_blank" moz-do-not-send="true">gvSIG_desarrolladores@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 href="https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores" target="_blank" moz-do-not-send="true">https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores</a>
</pre>
                            </blockquote>
                            <pre>-- 
--
gvSIG Association
Óscar Martínez
<a href="mailto:omartinez@gvsig.com" target="_blank" moz-do-not-send="true">omartinez@gvsig.com</a>
</pre>
                            <br>
_______________________________________________<br>
                            gvSIG_desarrolladores mailing list<br>
                            <a
                              href="mailto:gvSIG_desarrolladores@listserv.gva.es"
                              target="_blank" moz-do-not-send="true">gvSIG_desarrolladores@listserv.gva.es</a><br>
                            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
href="https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores"
                              target="_blank" moz-do-not-send="true">https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores</a></div>
                          <div><br>
                          </div>
                        </div>
                      </div>
                      <div><br>
                      </div>
                    </div>
                  </div>
                  <div><br>
                  </div>
                </div>
              </div>
            </blockquote>
          </div>
        </div>
        <div><br>
        </div>
      </div>
    </blockquote>
    <pre class="moz-signature" cols="72">-- 
--
gvSIG Association
Óscar Martínez
<a class="moz-txt-link-abbreviated" href="mailto:omartinez@gvsig.com">omartinez@gvsig.com</a>
</pre>
  </body>
</html>