Hola. Adjunto sólo el script.
Saludos. De: "Carlos Colombana" <ccolomb...@anep.edu.uy> Para: "gvsig desarrolladores" <gvsig_desarrolladores@listserv.gva.es> 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 gvSIG_desarrolladores@listserv.gva.es 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