<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"><omartinez@gvsig.com></a><br>
<b>Para: </b>"Montes Cámara, Victor"
<a class="moz-txt-link-rfc2396E" href="mailto:victor.montes@alicante-ayto.es"><victor.montes@alicante-ayto.es></a><br>
<b>CC: </b>"Lista de Desarrolladores de gvSIG"
<a class="moz-txt-link-rfc2396E" href="mailto:gvsig_desarrolladores@listserv.gva.es"><gvsig_desarrolladores@listserv.gva.es></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 (<<a
href="mailto:victor.montes@alicante-ayto.es"
target="_blank" moz-do-not-send="true">victor.montes@alicante-ayto.es</a>>)
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:"times new
roman","new
york",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" <<a
href="mailto:victor.montes@alicante-ayto.es"
target="_blank" moz-do-not-send="true">victor.montes@alicante-ayto.es</a>><br>
<b>Para: </b>"Lista de Desarrolladores de gvSIG"
<<a
href="mailto:gvsig_desarrolladores@listserv.gva.es"
target="_blank" moz-do-not-send="true">gvsig_desarrolladores@listserv.gva.es</a>><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:"times new
roman","new
york",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" <<a
href="mailto:victor.montes@alicante-ayto.es"
target="_blank" moz-do-not-send="true">victor.montes@alicante-ayto.es</a>><br>
<b>Para: </b>"Lista de Desarrolladores de
gvSIG" <<a
href="mailto:gvsig_desarrolladores@listserv.gva.es"
target="_blank" moz-do-not-send="true">gvsig_desarrolladores@listserv.gva.es</a>><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:"times new
roman","new
york",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:"times new roman","new york",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" <<a
href="mailto:omartinez@gvsig.com"
target="_blank" moz-do-not-send="true">omartinez@gvsig.com</a>><br>
<b>Para: </b>"gvsig desarrolladores" <<a
href="mailto:gvsig_desarrolladores@listserv.gva.es" target="_blank"
moz-do-not-send="true">gvsig_desarrolladores@listserv.gva.es</a>><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:"times new
roman","new
york",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>