Re: [Gvsig_desarrolladores] Etiquetas desde scripting

2019-04-05 Por tema Carlos Colombana
Hola Joaquín. 

Voy a jugar un poco con esos seteos. 

Muchas gracias por la explicación. 
Saludos. 

De: "Joaquin Jose del Cerro Murciano"  
Para: "gvsig desarrolladores"  
Enviados: Viernes, 5 de Abril 2019 4:56:00 
Asunto: Re: [Gvsig_desarrolladores] Etiquetas desde scripting 



El vie., 5 abr. 2019 a las 3:45, Carlos Colombana (< ccolomb...@anep.edu.uy >) 
escribió: 



Hola Joaquín. 

Es verdad, es relativamente fácil. Me entreveré. 
Funcionó, pero con dos variantes: 

... 
labelingStrategy.setFixedSize(0.15) 
... 
labelingStrategy.setUnit(layer.getMapContext().getViewPort().getMapUnits()) 
... 




Hola, 
mi consejo es que no uses las unidades de la vista. 
Estas son algo que se pueden cambiar por el usuario y va muy ligado a ese 0.15 
que has puesto. 
No se en que unidades estara la vista en el momento de tus pruebas, digamos que 
lo tienes en kilometros; pero imagina que la proxima vez que tiras a etiquetar 
el usuario tiene puesto que la vista la quiere en metros. Tu, por codigo, 
pondras un 0.15, ahora metros Las etiquetas habran pasado de medir alrededor de 
un kilometro a tan solo un metro. No se vera ninguna etiqueta. Seran demasiado 
pequeñas. Y tu codigo sera el mismo. No tiene sentido decir esto lo quiero de 
10. Si, vale ¿ pero 10 que ?. setFixedSize y setUnit deberian siempre ir a la 
par. 
Lo suyo es que fijes por codigo tanto el tamaño como sus unidades, o eso, o 
bien des la posibilidad de cambiar las dos al usuario; pero no que cojas una de 
la configuracion que el usuario tenga en la vista y otra vaya a capon en el 
codigo. 

Un saludo 
Joaquin 



BQ_BEGIN

Muchas gracias. 
Saludos. 

De: "Joaquin Jose del Cerro Murciano" < jjdelce...@gvsig.org > 
Para: "gvsig desarrolladores" < gvsig_desarrolladores@listserv.gva.es > 
Enviados: Jueves, 4 de Abril 2019 8:54:47 
Asunto: Re: [Gvsig_desarrolladores] Etiquetas desde scripting 



El jue., 4 abr. 2019 a las 2:14, Carlos Colombana (< ccolomb...@anep.edu.uy >) 
escribió: 

BQ_BEGIN

Hola. 

Adjunto sólo el script. 


BQ_END



Hola Carlos. 
No entiendo que tratas de hacer con el codigo que adjuntas, pero si solo 
quieres etiquetar de forma simple por un campo es relativamente facil. 

Te pego aqui un ejemplo. 
Uso una capa que tiene una columna "NOMBRE03" por la que etiqueto, y estoy 
etiquetando con un color y tamaño fijo. 

#><><--><--><--- 
# encoding: utf-8 

import gvsig 

from java.awt import Font 
from java.awt import Color 

from org.gvsig.symbology import SymbologyLocator 
from org.gvsig.fmap.mapcontext import MapContext 

def main(*args): 
#print MapContext.getDistanceNames() 

layer = gvsig.currentLayer() 

symbologyManager = SymbologyLocator.getSymbologyManager() 
labeling = symbologyManager.createDefaultLabelingStrategy() 

labeling.setTextField("NOMBRE03") 
labeling.setUsesFixedColor(True) 
labeling.setUsesFixedSize(True) 
labeling.setHeightField(None) 
labeling.setRotationField(None) 
labeling.setFixedColor(Color(200,100,100)) # RGB 
labeling.setFont(Font("Arial", Font.PLAIN, 12)) 
labeling.setReferenceSystem(0) # WORLD=0, PAPER=1 
labeling.setFixedSize(2) 
labeling.setUnit(MapContext.getDistancePosition("Kilometros")) 
#labeling.setUnit(-1) # PIXELS 

layer.setLabelingStrategy(labeling) 
layer.setIsLabeled(True) 

# Forzamos el repintado (opcional) 
layer.getMapContext().invalidate() 

#><><--><--><--- 

Un saludo 
Joaquin 





BQ_BEGIN

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 está dirigido exclusivamente a las personas que tienen las 
direcciones de correo electrónico especificadas en los destinatarios dentro de 
su encabezado. Si por error usted ha recibido este mensaje, por ningún motivo 
debe revelar su contenido, copiarlo, distribuirlo o utilizarlo. Le solicitamos 
por favor comunique el error a la dirección de correo electrónico remitente y 
elimine dicho mensaje junto con cualquier documento adjunto que pudiera 
contener. Los derechos de privacidad y confidencialidad

Re: [Gvsig_desarrolladores] Etiquetas desde scripting

2019-04-05 Por tema Joaquin Jose del Cerro Murciano
El vie., 5 abr. 2019 a las 3:45, Carlos Colombana ()
escribió:

> Hola Joaquín.
>
> Es verdad, es relativamente fácil. Me entreveré.
> Funcionó, pero con dos variantes:
>
> ...
> labelingStrategy.setFixedSize(0.15)
> ...
> labelingStrategy.setUnit(layer.getMapContext().getViewPort().getMapUnits())
> ...
>
>
Hola,
mi consejo es que no uses las unidades de la vista.
Estas son algo que se pueden cambiar por el usuario y va muy ligado a ese
0.15 que has puesto.
No se en que unidades estara la vista en el momento de tus pruebas, digamos
que lo tienes en kilometros; pero imagina que la proxima vez que tiras a
etiquetar el usuario tiene puesto que la vista la quiere en metros. Tu, por
codigo, pondras un 0.15, ahora metros Las etiquetas habran pasado de medir
alrededor de un kilometro a tan solo un metro. No se vera ninguna etiqueta.
Seran demasiado pequeñas. Y tu codigo sera el mismo. No tiene sentido decir
esto lo quiero de 10. Si, vale ¿ pero 10 que ?. setFixedSize y setUnit
deberian siempre ir a la par.
Lo suyo es que fijes por codigo tanto el tamaño como sus unidades, o eso, o
bien des la posibilidad de cambiar las dos al usuario; pero no que cojas
una de la configuracion que el usuario tenga en la vista y otra vaya a
capon en el codigo.

Un saludo
Joaquin




> Muchas gracias.
> Saludos.
> --
> *De: *"Joaquin Jose del Cerro Murciano" 
> *Para: *"gvsig desarrolladores" 
> *Enviados: *Jueves, 4 de Abril 2019 8:54:47
> *Asunto: *Re: [Gvsig_desarrolladores] Etiquetas desde scripting
>
>
>
> El jue., 4 abr. 2019 a las 2:14, Carlos Colombana ()
> escribió:
>
>> Hola.
>>
>> Adjunto sólo el script.
>>
>>
>
>
> Hola Carlos.
> No entiendo que tratas de hacer con el codigo que adjuntas, pero si solo
> quieres etiquetar de forma simple por un campo es relativamente facil.
>
> Te pego aqui un ejemplo.
> Uso una capa que tiene una columna "NOMBRE03" por la que etiqueto, y estoy
> etiquetando con un color y tamaño fijo.
>
> #><><--><--><---
> # encoding: utf-8
>
> import gvsig
>
> from java.awt import Font
> from java.awt import Color
>
> from org.gvsig.symbology import SymbologyLocator
> from org.gvsig.fmap.mapcontext import MapContext
>
> def main(*args):
> #print MapContext.getDistanceNames()
>
> layer = gvsig.currentLayer()
>
> symbologyManager = SymbologyLocator.getSymbologyManager()
> labeling = symbologyManager.createDefaultLabelingStrategy()
>
> labeling.setTextField("NOMBRE03")
> labeling.setUsesFixedColor(True)
> labeling.setUsesFixedSize(True)
> labeling.setHeightField(None)
> labeling.setRotationField(None)
> labeling.setFixedColor(Color(200,100,100)) # RGB
> labeling.setFont(Font("Arial", Font.PLAIN, 12))
> labeling.setReferenceSystem(0) # WORLD=0, PAPER=1
> labeling.setFixedSize(2)
> labeling.setUnit(MapContext.getDistancePosition("Kilometros"))
> #labeling.setUnit(-1) # PIXELS
>
> layer.setLabelingStrategy(labeling)
> layer.setIsLabeled(True)
>
> # Forzamos el repintado (opcional)
> layer.getMapContext().invalidate()
>
> #><><--><--><---
>
> Un saludo
> Joaquin
>
>
>
>
>
>
>> Saludos.
>> --
>> *De: *"Carlos Colombana" 
>> *Para: *"gvsig desarrolladores" 
>> *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 está dirigido exclusivamente a las personas que tienen las
>> direcciones de correo electrónico especificadas en los destinatarios dentro
>> de su encabezado. Si por error usted ha recibido este mensaje, por ningún
>> motivo debe revelar su contenido, copiarlo, distribuirlo o utilizarlo. Le
>

Re: [Gvsig_desarrolladores] Etiquetas desde scripting

2019-04-04 Por tema Carlos Colombana
Hola Joaquín. 

Es verdad, es relativamente fácil. Me entreveré. 
Funcionó, pero con dos variantes: 

... 
labelingStrategy.setFixedSize(0.15) 
... 
labelingStrategy.setUnit(layer.getMapContext().getViewPort().getMapUnits()) 
... 

Muchas gracias. 
Saludos. 

De: "Joaquin Jose del Cerro Murciano"  
Para: "gvsig desarrolladores"  
Enviados: Jueves, 4 de Abril 2019 8:54:47 
Asunto: Re: [Gvsig_desarrolladores] Etiquetas desde scripting 



El jue., 4 abr. 2019 a las 2:14, Carlos Colombana (< ccolomb...@anep.edu.uy >) 
escribió: 



Hola. 

Adjunto sólo el script. 






Hola Carlos. 
No entiendo que tratas de hacer con el codigo que adjuntas, pero si solo 
quieres etiquetar de forma simple por un campo es relativamente facil. 

Te pego aqui un ejemplo. 
Uso una capa que tiene una columna "NOMBRE03" por la que etiqueto, y estoy 
etiquetando con un color y tamaño fijo. 

#><><--><--><--- 
# encoding: utf-8 

import gvsig 

from java.awt import Font 
from java.awt import Color 

from org.gvsig.symbology import SymbologyLocator 
from org.gvsig.fmap.mapcontext import MapContext 

def main(*args): 
#print MapContext.getDistanceNames() 

layer = gvsig.currentLayer() 

symbologyManager = SymbologyLocator.getSymbologyManager() 
labeling = symbologyManager.createDefaultLabelingStrategy() 

labeling.setTextField("NOMBRE03") 
labeling.setUsesFixedColor(True) 
labeling.setUsesFixedSize(True) 
labeling.setHeightField(None) 
labeling.setRotationField(None) 
labeling.setFixedColor(Color(200,100,100)) # RGB 
labeling.setFont(Font("Arial", Font.PLAIN, 12)) 
labeling.setReferenceSystem(0) # WORLD=0, PAPER=1 
labeling.setFixedSize(2) 
labeling.setUnit(MapContext.getDistancePosition("Kilometros")) 
#labeling.setUnit(-1) # PIXELS 

layer.setLabelingStrategy(labeling) 
layer.setIsLabeled(True) 

# Forzamos el repintado (opcional) 
layer.getMapContext().invalidate() 

#><><--><--><--- 

Un saludo 
Joaquin 





BQ_BEGIN

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 está dirigido exclusivamente a las personas que tienen las 
direcciones de correo electrónico especificadas en los destinatarios dentro de 
su encabezado. Si por error usted ha recibido este mensaje, por ningún motivo 
debe revelar su contenido, copiarlo, distribuirlo o utilizarlo. Le solicitamos 
por favor comunique el error a la dirección de correo electrónico remitente y 
elimine dicho mensaje junto con cualquier documento adjunto que pudiera 
contener. Los derechos de privacidad y confidencialidad de la información en 
este mensaje no deben perderse por el hecho de haberse trasmitido erróneamente 
o por causas de interferencias en el funcionamiento de los sistemas de correo y 
canales de comunicación. Los datos conten idos en este mensaje están protegidos 
por la Ley 18.331 Ley de Protección de Datos Personales y Acción de Habeas 
Data. Toda opinión que se expresa en este mensaje pertenece a la persona 
remitente por lo que no debe entenderse necesariamente como una opinión 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 consideración a que 
los mensajes enviados de manera electrónica 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 envío por el 
remitente, incompletos, eliminados o con algún programa malicioso denominado 
como virus informático. 

___ 
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 

BQ_END



-- 
-- 
Joaquin Jose del Cerro Murciano 
Development and software arquitecture manager at gvSIG Team 
jjdelce...@gvsig.com 
gvSIG Assoc

Re: [Gvsig_desarrolladores] Etiquetas desde scripting

2019-04-04 Por tema Joaquin Jose del Cerro Murciano
El jue., 4 abr. 2019 a las 2:14, Carlos Colombana ()
escribió:

> Hola.
>
> Adjunto sólo el script.
>
>


Hola Carlos.
No entiendo que tratas de hacer con el codigo que adjuntas, pero si solo
quieres etiquetar de forma simple por un campo es relativamente facil.

Te pego aqui un ejemplo.
Uso una capa que tiene una columna "NOMBRE03" por la que etiqueto, y estoy
etiquetando con un color y tamaño fijo.

#><><--><--><---
# encoding: utf-8

import gvsig

from java.awt import Font
from java.awt import Color

from org.gvsig.symbology import SymbologyLocator
from org.gvsig.fmap.mapcontext import MapContext

def main(*args):
#print MapContext.getDistanceNames()

layer = gvsig.currentLayer()

symbologyManager = SymbologyLocator.getSymbologyManager()
labeling = symbologyManager.createDefaultLabelingStrategy()

labeling.setTextField("NOMBRE03")
labeling.setUsesFixedColor(True)
labeling.setUsesFixedSize(True)
labeling.setHeightField(None)
labeling.setRotationField(None)
labeling.setFixedColor(Color(200,100,100)) # RGB
labeling.setFont(Font("Arial", Font.PLAIN, 12))
labeling.setReferenceSystem(0) # WORLD=0, PAPER=1
labeling.setFixedSize(2)
labeling.setUnit(MapContext.getDistancePosition("Kilometros"))
#labeling.setUnit(-1) # PIXELS

layer.setLabelingStrategy(labeling)
layer.setIsLabeled(True)

# Forzamos el repintado (opcional)
layer.getMapContext().invalidate()

#><><--><--><---

Un saludo
Joaquin






> Saludos.
> --
> *De: *"Carlos Colombana" 
> *Para: *"gvsig desarrolladores" 
> *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 está dirigido exclusivamente a las personas que tienen las
> direcciones de correo electrónico especificadas en los destinatarios dentro
> de su encabezado. Si por error usted ha recibido este mensaje, por ningún
> motivo debe revelar su contenido, copiarlo, distribuirlo o utilizarlo. Le
> solicitamos por favor comunique el error a la dirección de correo
> electrónico remitente y elimine dicho mensaje junto con cualquier documento
> adjunto que pudiera contener. Los derechos de privacidad y confidencialidad
> de la información en este mensaje no deben perderse por el hecho de haberse
> trasmitido erróneamente o por causas de interferencias en el funcionamiento
> de los sistemas de correo y canales de comunicación. Los datos conten idos
> en este mensaje están protegidos por la Ley 18.331 Ley de Protección de
> Datos Personales y Acción de Habeas Data. Toda opinión que se expresa en
> este mensaje pertenece a la persona remitente por lo que no debe entenderse
> necesariamente como una opinión 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 consideración a que los
> mensajes enviados de manera electrónica 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 envío por el
> remitente, incompletos, eliminados o con algún programa malicioso
> denominado como virus informático.
>
> ___
> 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
>


-- 
--
Joaquin Jose del Cerro Murciano
Development and software arquitecture manager at gvSIG Team
jjdelce...@gvsig.com
gvSIG Association
www.gvsig.com
# encoding: utf-8

import gvsig

from java.awt import Font
from java.awt import Color

from org.gvsig.symbology import SymbologyLocator
from org.gvsig.fmap.mapcontext import MapContext

def main(*args):
#print MapContext.getDistanceNames()

layer = gvsig.currentLayer()

symbologyManager = SymbologyLocator.getSymbologyManager()
labeling = symbologyManager.createDefaultLabelingStrategy()

labeling.setTextField("NOMBRE03")
labeling.setUsesFixedColor(True)
labeling.setUsesFixedSize(True)

Re: [Gvsig_desarrolladores] Etiquetas desde scripting

2019-04-03 Por tema Carlos Colombana
Hola. 

Adjunto sólo el script. 

Saludos. 

De: "Carlos Colombana"  
Para: "gvsig desarrolladores"  
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()