Hola.
Adjunto sólo el script.
Saludos.
De: "Carlos Colombana" <[email protected]>
Para: "gvsig desarrolladores" <[email protected]>
Enviados: Domingo, 31 de Marzo 2019 23:11:17
Asunto: Etiquetas desde scripting
Hola.
He logrado manejar las leyendas desde scripiting, pero no lo estoy logrando con
las etiquetas.
Adjunto capa de prueba y script.
La idea es mostrar los textos del campo "NOMBRE".
¿Podrían ayudarme?.
Saludos.
--
Carlos Colombana
ANEP - Departamento de Investigación y Estadística Educativa de CODICEN
Av. Libertador 1409 piso 9 - Montevideo
Tel. 2900 7070 Int. 6009
--
Carlos Colombana
ANEP - Departamento de Investigación y Estadística Educativa de CODICEN
Av. Libertador 1409 piso 9 - Montevideo
Tel. 2900 7070 Int. 6009
===================PRIVACIDAD DE ESTE MENSAJE=================== Este mensaje
esta dirigido exclusivamente a las personas que tienen las direcciones de
correo electronico especificadas en los destinatarios dentro de su encabezado.
Si por error usted ha recibido este mensaje, por ningun motivo debe revelar su
contenido, copiarlo, distribuirlo o utilizarlo. Le solicitamos por favor
comunique del error a la direccion de correo electronico remitente y elimine
dicho mensaje junto con cualquier documento adjunto que pudiera contener. Los
derechos de privacidad y confidencialidad de la informacion en este mensaje no
deben perderse por el hecho de haberse trasmitido erroneamente o por causas de
interferencias en el funcionamiento de los sistemas de correo y canales de
comunicacion. Los datos contenidos en este mensaje estan protegidos por la Ley
18.331 Ley de Proteccion de Datos Personales y Accion de Habeas
Data cuy
o alcance puede encontrar en:
https://www.datospersonales.gub.uy/inicio/normativa/nacional/leyes/. Toda
opinion que se expresa en este mensaje pertenece a la persona remitente por lo
que no debe entenderse necesariamente como una opinion de ANEP y/o de las
entidades que la integran, a menos que el remitente este autorizado para
hacerlo o expresamente lo diga en el mismo mensaje. En consideracion a que los
mensajes enviados de manera electronica pueden ser interceptados y manipulados,
ANEP y las entidades que la integran no se hacen responsables si los mensajes
llegan con demora respecto de la fecha de su envio por el remitente,
incompletos, eliminados o con alg��un programa malicioso denominado como virus
informatico.
import gvsig
from gvsig import commonsdialog
from gvsig import geom
from java.awt import BasicStroke
from java.awt import Font
from java.awt import Point
from java.awt import Rectangle
from java.awt.image import BufferedImage
from org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl import SingleSymbolLegend
from org.gvsig.symbology.fmap.mapcontext.rendering.legend.styling import AttrInTableLabelingStrategy
from org.gvsig.symbology.fmap.mapcontext.rendering.legend.styling import DefaultLabelingMethod
from org.gvsig.symbology.fmap.mapcontext.rendering.legend.styling import LabelClass
from org.gvsig.symbology.fmap.mapcontext.rendering.legend.styling import ZoomConstraintsImpl
from org.gvsig.symbology.fmap.mapcontext.rendering.symbol.fill.impl import SimpleFillSymbol
from org.gvsig.symbology.fmap.mapcontext.rendering.symbol.line.impl import SimpleLineSymbol
from org.gvsig.symbology.fmap.mapcontext.rendering.symbol.style import SimpleLabelStyle
from org.gvsig.symbology.fmap.mapcontext.rendering.symbol.text.impl import SimpleTextSymbol
from org.gvsig.utils.swing.threads import DefaultCancellableMonitorable
def launchTestingEnvironment():
currentProject = gvsig.currentProject()
if currentProject.getView("Prueba") == None:
currentProject.createView("Prueba")
view = currentProject.getView("Prueba")
view.setBackColor(gvsig.utils.getColorFromRGB(204, 204, 204)) # RGB
view.showWindow()
message = ""
if view.getLayer("Departamentos") == None:
try:
gvsig.loadShapeFile(gvsig.getResource(__file__, "data", "Departamentos.shp"))
except:
message = "\n'Departamentos.shp'"
layer = view.getLayer("Departamentos")
if layer != None:
symbol = SimpleFillSymbol()
symbol.setColor(gvsig.utils.getColorFromRGB(153, 255, 153)) # RGB
outline = SimpleLineSymbol()
outline.setLineColor(gvsig.utils.getColorFromRGB(0, 204, 0)) # RGB
symbol.setOutline(outline)
legend = SingleSymbolLegend(symbol)
layer.setLegend(legend)
layer.setVisible(True)
layer.setActive(True)
view.center(layer.getFullEnvelope())
features = layer.features()
envelope = layer.getFullEnvelope()
mapContext = view.getMapContext()
viewPort = mapContext.getViewPort()
bufferedImage = BufferedImage(int(envelope.getLength(0)), int(envelope.getLength(1)), BufferedImage.TYPE_INT_ARGB)
graphics2D = bufferedImage.getGraphics()
graphics2D.setTransform(viewPort.getAffineTransform())
graphics2D.setStroke(BasicStroke(viewPort.getDist1pixel()))
graphics2D.setColor(gvsig.utils.getColorFromRGB(0, 0, 0)) # RGB
labelingStrategy = AttrInTableLabelingStrategy()
zoomConstraints = ZoomConstraintsImpl()
zoomConstraints.setMode(ZoomConstraintsImpl.DEFINED_BY_THE_LAYER)
labelingStrategy.setZoomConstraints(zoomConstraints)
labelingStrategy.setLayer(layer)
labelingStrategy.setFixedColor(gvsig.utils.getColorFromRGB(0, 0, 0)) # RGB
labelingStrategy.setUnit(viewPort.getMapUnits())
labelingStrategy.setUsesFixedColor(True)
labelingStrategy.setUsesFixedSize(True)
labelingStrategy.setReferenceSystem(layer.getProjection().getCode())
labelingStrategy.setFont(Font("Arial", Font.PLAIN, 10))
labelingStrategy.setColorFont(gvsig.utils.getColorFromRGB(0, 0, 0)) # RGB
labelingStrategy.setTextField("NOMBRE")
labelingMethod = labelingStrategy.getLabelingMethod()
label = LabelClass()
label.setName(layer.getName())
textSymbol = SimpleTextSymbol()
textSymbol.setFont(Font("Arial", Font.PLAIN, 10))
textSymbol.setTextColor(gvsig.utils.getColorFromRGB(0, 0, 0)) # RGB
textSymbol.setRotation(0)
textSymbol.setAutoresizeEnabled(True)
label.setTextSymbol(textSymbol)
label.setVisible(True)
labelStyle = SimpleLabelStyle()
labelStyle.setSize(30, 10)
labelStyle.setTextFields(["NOMBRE"])
for feature in features:
centroid = feature.geometry().centroid()
'''
rectangle = Rectangle(int(centroid.getX() - envelope.getMinimum(0)), int(envelope.getLength(1) - (centroid.getY() - envelope.getMinimum(1))), 30, 10)
labelStyle.addTextFieldArea(rectangle)
labelStyle.setTextFields([feature.get("NOMBRE")])
'''
graphics2D.drawString(feature.get("NOMBRE"), centroid.getX() - envelope.getMinimum(0), envelope.getLength(1) - (centroid.getY() - envelope.getMinimum(1)))
graphics2D.drawImage(bufferedImage, viewPort.getAffineTransform(), None)
label.setLabelStyle(labelStyle)
labelingMethod.addLabelClass(label)
labelingStrategy.setLabelingMethod(labelingMethod)
layer.setLabelingStrategy(labelingStrategy)
cancel = DefaultCancellableMonitorable()
scale = mapContext.getScaleView()
dpi = mapContext.getScreenDPI()
layer.draw(bufferedImage, graphics2D, viewPort, cancel, scale)
layer.drawLabels(bufferedImage, graphics2D, viewPort, cancel, scale, dpi)
return message
def main(*args):
message = unichr(191) + "Quiere lanzar el ambiente de prueba?"
title = "script00"
optionType = commonsdialog.YES_NO
messageType = commonsdialog.QUESTION
root = None
answer = commonsdialog.confirmDialog(message, title, optionType, messageType, root)
if answer == commonsdialog.YES:
message = launchTestingEnvironment()
if message != "":
message = "No fu" + unichr(233) + " posible cargar:" + message
title = "script00 - Error"
messageType = commonsdialog.FORBIDEN
root = None
commonsdialog.msgbox(message, title, messageType, root)
_______________________________________________
gvSIG_desarrolladores mailing list
[email protected]
Para ver histórico de mensajes, editar sus preferencias de usuario o darse de
baja en esta lista, acuda a la siguiente dirección:
https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores