<html><body><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))<br>textSymbol.setFontSize(10)<br>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&nbsp;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">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)<br>symbologyManager = SymbologyLocator.getSymbologyManager()</pre><pre data-mce-style="margin: 0px;" style="margin: 0px;">if nombre_capa == "CALLES":<br>&nbsp;&nbsp;&nbsp;&nbsp;labeling = symbologyManager.createDefaultLabelingStrategy()<br>&nbsp;&nbsp;&nbsp;&nbsp;labeling.setTextField("TEXTO")<br>&nbsp;&nbsp;&nbsp;&nbsp;labeling.setUsesFixedColor(True)<br>&nbsp;&nbsp;&nbsp;&nbsp;labeling.setUsesFixedSize(True)<br>&nbsp;&nbsp;&nbsp;&nbsp;labeling.setHeightField(None)<br>&nbsp;&nbsp;&nbsp;&nbsp;labeling.setRotationField("ANGULO")<br>&nbsp;&nbsp;&nbsp;&nbsp;labeling.setFixedColor(Color(r,g,b)) # RGB<br>&nbsp;&nbsp;&nbsp;&nbsp;labeling.setFont(Font("Arial", Font.BOLD, 15))<br>&nbsp;&nbsp;&nbsp;&nbsp;labeling.setReferenceSystem(0) # WORLD=0, PAPER=1<br>&nbsp;&nbsp;&nbsp;&nbsp;labeling.setFixedSize(15)<br>&nbsp;&nbsp;&nbsp;&nbsp;labeling.setUnit(-1) # PIXELS<br>&nbsp;&nbsp;&nbsp;&nbsp;labeling.setReferenceSystem(1)</pre><pre data-mce-style="margin: 0px;" style="margin: 0px;">&nbsp;&nbsp;&nbsp;&nbsp;layer.setLabelingStrategy(labeling)</pre><pre data-mce-style="margin: 0px;" style="margin: 0px;"><br>elif nombre_capa == "NUMEROS":</pre><pre data-mce-style="margin: 0px;" style="margin: 0px;">&nbsp;&nbsp;&nbsp;&nbsp;glf = GeneralLabelingFactory()<br>&nbsp;&nbsp;&nbsp;&nbsp;gls = glf.createStrategy(layer, None, None, None)</pre><pre data-mce-style="margin: 0px;" style="margin: 0px;">&nbsp;&nbsp;&nbsp;&nbsp;placementc = gls.getPlacementConstraints()<br>&nbsp;&nbsp;&nbsp;&nbsp;placementc.setPlacementMode(IPlacementConstraints.ON_TOP_OF_THE_POINT)</pre><pre data-mce-style="margin: 0px;" style="margin: 0px;">&nbsp;&nbsp;&nbsp;&nbsp;defaultLabel = symbologyManager.createDefaultLabel()<br>&nbsp;&nbsp;&nbsp;&nbsp;defaultLabel.setLabelExpressions(["TEXTO"])<br>&nbsp;&nbsp;&nbsp;&nbsp;textSymbol = symbologyManager.createSimpleTextSymbol()<br>&nbsp;&nbsp;&nbsp;&nbsp;textSymbol.setFont(Font("Arial", Font.BOLD, 10))<br>&nbsp;&nbsp;&nbsp;&nbsp;textSymbol.setFontSize(10)<br>&nbsp;&nbsp;&nbsp;&nbsp;textSymbol.setTextColor(Color(r,g,b)) # RGB<br>&nbsp;&nbsp;&nbsp;&nbsp;textSymbol.setDrawWithHalo(True)<br>&nbsp;&nbsp;&nbsp;&nbsp;textSymbol.setHaloColor(Color.WHITE)<br>&nbsp;&nbsp;&nbsp;&nbsp;textSymbol.setHaloWidth(2)<br>&nbsp;&nbsp;&nbsp;&nbsp;defaultLabel.setTextSymbol(textSymbol)<br>&nbsp;&nbsp;&nbsp;&nbsp;resp = gls.getLabelingMethod() #ILabelingMethod<br>&nbsp;&nbsp;&nbsp;&nbsp;resp.addLabelClass(defaultLabel)<br>&nbsp;&nbsp;&nbsp;&nbsp;gls.setLabelingMethod(resp)<br>&nbsp;&nbsp;&nbsp;&nbsp;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" &lt;omartinez@gvsig.com&gt;<br><b>Para: </b>"Montes Cámara, Victor" &lt;victor.montes@alicante-ayto.es&gt;<br><b>CC: </b>"Lista de Desarrolladores de gvSIG" &lt;gvsig_desarrolladores@listserv.gva.es&gt;<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">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">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:16e12dfa4338017ec871"></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">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">gvsig_desarrolladores@listserv.gva.es</a>&gt;<br><b>CC: </b><a href="mailto:omartinez@gvsig.com" target="_blank">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&nbsp;<a href="http://osgeo-org.1560.x6.nabble.com/Re-Etiquetas-desde-scripting-td5400766.html" target="_blank">http://osgeo-org.1560.x6.nabble.com/Re-Etiquetas-desde-scripting-td5400766.html</a>&nbsp;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">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">gvsig_desarrolladores@listserv.gva.es</a>&gt;<br><b>CC: </b><a href="mailto:omartinez@gvsig.com" target="_blank">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:16e12dfa43343a0c1f72"></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:16e12dfa433f8d4c72f3"></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&nbsp;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">omartinez@gvsig.com</a>&gt;<br><b>Para: </b>"gvsig desarrolladores" &lt;<a href="mailto:gvsig_desarrolladores@listserv.gva.es" target="_blank">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>&nbsp; layer.setMinScale(integer)<br> &nbsp; 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):

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

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

&nbsp; #Change zoom
&nbsp; layer.setMinScale(1000)
&nbsp; layer.setMaxScale(5000)

<a href="https://gist.github.com/oscar9/296125be4e58e87d978c578ea3996000" target="_blank">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>&nbsp; &nbsp; 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">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">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">omartinez@gvsig.com</a>
</pre><br>_______________________________________________<br>gvSIG_desarrolladores mailing list<br><a href="mailto:gvSIG_desarrolladores@listserv.gva.es" target="_blank">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">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></body></html>