[Gvsig_desarrolladores] c髆o recorrer los elementos de un mapa automaticamente

Ana Calle nico200307 en gmail.com
Vie Oct 23 11:16:36 CEST 2015


Hola Javier,
consulta el hilo
c贸mo recorrer los elementos de un mapa automaticamente
de este mismo mes, seguro que te ayuda

Saludos

El 23 de octubre de 2015, 10:56, Javier Gal谩n <javiergalans en gmail.com>
escribi贸:

> Hola
>
> Quiero intentar algunas automatizaciones con las salidas de los mapas, y
> estoy buscando el pom para poder modificarlo, pero no se donde lo almacena.
> 驴Alguien podr铆a decirme donde lo encuentro?
>
> Gracias
> Javier
>
>
> El 15 de octubre de 2015, 7:52, Ana Calle <nico200307 en gmail.com> escribi贸:
>
>> Muchas gracias Joaqu铆n, claro que me servir谩, a mi y a mucha m谩s gente.
>> Esos peque帽os scripts de c贸digo que casi siempre se aportan como ejemplos
>> (unido a esas buenas explicaciones a las que nos tienes acostumbrados),
>> ayudan mucho para continuar el trabajo.
>>
>> Saludos
>> ana
>>
>> El 14 de octubre de 2015, 21:20, Joaquin Jose del Cerro Murciano <
>> jjdelcerro en gvsig.org> escribi贸:
>>
>>>
>>>
>>> El 14 de octubre de 2015, 9:03, Llu铆s Marqu茅s <lmarques en disid.com>
>>> escribi贸:
>>>
>>>> Hola Ana,
>>>>
>>>> si no me equivoco, efectivamente te faltan las siguientes dependencias
>>>> en el pom:
>>>>
>>>> <dependency>
>>>>     <groupId>org.gvsig</groupId>
>>>>     <artifactId>org.gvsig.app.document.table.app.mainplugin</artifactId>
>>>> </dependency>
>>>> <dependency>
>>>>      <groupId>org.gvsig</groupId>
>>>>
>>>> <artifactId>org.gvsig.app.document.layout2.app.mainplugin</artifactId>
>>>>  </dependency>
>>>>
>>>> Adem谩s de a帽adir esta dos dependencias, tendr谩s que a帽adir el siguiente
>>>> manejo de dependencia en el pom de tu proyecto padre:
>>>>
>>>> <dependencyManagement>
>>>>     <dependencies>
>>>>         <dependency>
>>>>              <groupId>org.gvsig</groupId>
>>>>
>>>> <artifactId>org.gvsig.app.document.layout2.app.mainplugin</artifactId>
>>>>               <version>2.0.57</version>
>>>>         </dependency>
>>>>     </dependencies>
>>>> </dependencyManagement>
>>>>
>>>> Solo es necesario a帽adir el manejo de *layout2* porque en el *pom* de
>>>> *org.gvsig.desktop* ya tiene indicado el manejo para la dependencia
>>>> del documento tabla.
>>>>
>>>> Por otro lado, como las dependencias que estas a帽adiendo son a otros
>>>> plugins de gvSIG, es necesario indicar en el config.xml  que depende de
>>>> estos dos plugins por dos motivos: el primero para que en tiempo de
>>>> ejecuci贸n sepa donde se encuentran las clases y para que gvSIG cargue
>>>> primero los plugins de los que dependes antes de tu plugin. Quedar铆a algo
>>>> as铆:
>>>>
>>>> <plugin-config>
>>>>     <depends plugin-name="org.gvsig.app.mainplugin" />
>>>>     <depends plugin-name="org.gvsig.app.document.table.app.mainplugin"
>>>> />
>>>>     <depends
>>>> plugin-name="org.gvsig.app.document.layout2.app.mainplugin" />
>>>>
>>>> [...]
>>>>
>>>> Si alguien ven algo incorrecto que me corriga. Un saludo, Llu铆s.
>>>>
>>>>
>>>>
>>>>
>>> Hola Ana,
>>> un correccion a lo que comenta Luis, y algunas recomendaciones.
>>>
>>> Primero la correccion.
>>>
>>> La versiom del layout no creo que sea esa la que te interese, esa es
>>> la version del layout del build 2.3.0-2403, y supongo que tu querras
>>> la de la 2.2.0 final o la de la 2.1.0 final.
>>>
>>> - Para gvSIG 2.2.0-2313 es la 2.0.52 del layout.
>>> - Para gvSIG 2.1.0-2269 es la 2.0.42 del layout.
>>>
>>> Como aun no hay version final de la 2.3.0 no te aconsejo que trabajes
>>> con versiones del layout superiores a la 2.0.52.
>>>
>>> Para saber que version tienes que usar del layout, tienes que determinar
>>> contra que version de gvSIG vas a trabajar y mirar en la instalacion de
>>> esa version en:
>>>
>>>
>>> gvSIG/extensiones/org.gvsig.app.document.layout2.app.mainplugin/org.gvsig.app.document.layout2.app.mainplugin-*.jar
>>>
>>> La version de ese jar te da la version del layout para ese gvSIG.
>>>
>>> Y ahora las recomendaciones.
>>>
>>> Son dos...
>>>
>>> - Relacionadas con la inclusion de las dependencias
>>>   en el dependencyManagement
>>> - Relacionadas con el scope de las dependencias.
>>>
>>> Es correcto usar la definicion de dependencias en el dependencyManagenet
>>> que te ha indicado Lluis, pero la recomendacion es que para a帽adir una
>>> dependencia al
>>> dependencyManagenet le pongas algo como:
>>>
>>> ...
>>>   <properties>
>>> ...
>>>
>>> <org.gvsig.app.document.layout2.app.version>2.0.55</org.gvsig.app.document.layout2.app.version>
>>> ...
>>>   </properties>
>>>
>>> ...
>>>
>>>   <dependency>
>>>       <groupId>org.gvsig</groupId>
>>>       <artifactId>org.gvsig.app.document.layout2.app</artifactId>
>>>       <version>${org.gvsig.app.document.layout2.app.version}</version>
>>>       <type>pom</type>
>>>       <scope>import</scope>
>>>   </dependency>
>>> ...
>>>
>>> Que significa eso:
>>> - En lugar de incluir una dependencia con un subproyecto del proyecto
>>>   org.gvsig.app.document.layout2.app, le diremos que importe las
>>>   dependencias que hay declaradas en el proyecto raiz del layout.
>>>   Eso lo hacemos con los tags type y scope.
>>>   Esto minimiza los errores al especificar la version cuando tenemos
>>>   que declarar mas de una dependencia de un mismo proyecto.
>>>   Salvo error, todos los proyectos de gvSIG indican en el
>>> dependencyManagement
>>>   del proyecto raiz las versiones de los artifactos que generan sus
>>>   subproyectos y las de las librerias que pueden ser necesarias para
>>>   linkar con ellos.
>>>   Es aconsojable que en tus proyectos relacionados con gvSIG sigas esta
>>>   practica para facilitar el uso desde otros proyectos.
>>>
>>> - Desde gvSIG aconsejamos que para indicar una version de un proyecto
>>>   de gvSIG declaremos el numero de version en una propiedad en el pom.
>>>   Esto facilita actualizar las versiones a la ultima usando
>>>     mvn update-properties
>>>
>>>
>>> En cuanto a la declaracion del scope...
>>>
>>> En el pom del plugin, que es donde deben ir las dependencias con los
>>> otros plugins, es recomendable especificar el scope de esa dependencia.
>>> Si no se especifica maven asume que es una dependencia de compilacion.
>>> Esto parece no tener muchas repercusiones salvo que en algun momento
>>> quieras obtener un informe de dependencias de tu proyecto o esteis
>>> trabajando mas de un desarrollador en el y de repente necesites saber
>>> si el proyecto precisa de una libreria en concreto. Te encontraras que no
>>> sabras nunca si es una dependencia de runtime y alguien se olvido
>>> de poner el scope, o es de compilacion. Asi que como cuesta
>>> muy poquito poner que tipo de depenencia es, aconsejo que cuando se
>>> a帽ada al pom se tenga la costumbre de indicarlo.
>>>
>>> Los scopes mas comunes son:
>>>     <scope>compile</scope>
>>>     <scope>runtime</scope>
>>>
>>>
>>> Asi la declaracion con las dependencias con el plugin de tablas y layout
>>> serian:
>>>
>>> <dependency>
>>>     <groupId>org.gvsig</groupId>
>>>     <artifactId>org.gvsig.app.document.table.app.mainplugin</artifactId>
>>>     <scope>compile</scope>
>>> </dependency>
>>> <dependency>
>>>      <groupId>org.gvsig</groupId>
>>>
>>> <artifactId>org.gvsig.app.document.layout2.app.mainplugin</artifactId>
>>>     <scope>compile</scope>
>>>  </dependency>
>>>
>>> Bueno, pues solo era matizar algunas cosillas.
>>>
>>> Espero que te sirba.
>>>
>>> Un saludo
>>> Joaquin
>>>
>>>
>>>
>>>
>>>>
>>>> El 14/10/15 a las 08:10, Ana Calle escribi贸:
>>>>
>>>> Hola Joaquin,
>>>> he estado intentando hacer funcionar el c贸digo que me pasaste, a mi
>>>> extensi贸n en java, pero (perdona mi ignorancia) no he sido capaz.
>>>>
>>>> Me da error directamente al intentar hacer los import correspondientes.
>>>>
>>>>
>>>> S铆 que me deja hacer:
>>>> import org.gvsig.app.project.documents.view.ViewManager;
>>>>
>>>> Pero me da error de que no puede resolver:
>>>> import org.gvsig.app.project.documents.layout.LayoutManager;
>>>> import org.gvsig.app.project.documents.table.TableManager;
>>>> Supongo que me falta alguna referencia en el pom.xml o algo as铆, pero
>>>> no consigo verlo
>>>> A ver si me puedes echar una mano...
>>>> Como siempre muchas gracias por tu tiempo.
>>>>
>>>> Saludos
>>>>
>>>> El 13 de octubre de 2015, 14:22, Joaquin Jose del Cerro Murciano <
>>>> <jjdelcerro en gvsig.org>jjdelcerro en gvsig.org> escribi贸:
>>>>
>>>>>
>>>>>
>>>>> El 13 de octubre de 2015, 12:26, Ana Calle < <nico200307 en gmail.com>
>>>>> nico200307 en gmail.com> escribi贸:
>>>>>
>>>>>> Buenos d铆as,
>>>>>> en el proceso de migraci贸n del c贸digo de una extensi贸n realizada en
>>>>>> gvSig 1.10, tenemos implementados una serie de planos con sus respectivos
>>>>>> cajetines.
>>>>>> De manera autom谩tica, el plano se rellenaba seg煤n las caracter铆sticas
>>>>>> de consulta correspondientes, es decir, en el cajet铆n se van sustituyendo
>>>>>> los textos gen茅ricos por los espec铆ficos de la consulta.
>>>>>> Ten铆amos implementado el c贸digo en el que obten铆a el layout de la
>>>>>> ventana del plano, y ah铆 se recorr铆an los elementos:
>>>>>>
>>>>>> --recorriendo los documentos lleg谩bamos a la ventana del plano
>>>>>> (vEntana):
>>>>>>
>>>>>> Layout l =(Layout)vEntana;
>>>>>> IFFrame[] fframes = l.getFFrames();
>>>>>> for (int i = 0; i < fframes.length; i++) {
>>>>>> if (fframes[i] instanceof FFrameView) {
>>>>>> ......
>>>>>> }else if (fframes[i] instanceof FFrameText){
>>>>>> ......
>>>>>> }
>>>>>> }
>>>>>> 驴como podr铆a obtener ese layout y los IFFrame[] con la nueva version
>>>>>> gvSig 2.2?
>>>>>>
>>>>>>
>>>>> Puedes o recorrer todos los documentos, puedes o no filtrar por tipo,
>>>>> o recuperar un documento layout en concreto por nombre. Una vez tengas el
>>>>> documento layout, accedes LayoutContext y a el ya le puedes peridr
>>>>> "getFFrames".
>>>>>
>>>>> Dejo pedacito de script (falta la iniciaciacion del acceso al layout
>>>>> desde scripting pero para usarlo de inspiracion en java es suficiente).
>>>>>
>>>>> Ojo, que el LayoutDocument, lo que devuelbe el getDocuments, no es la
>>>>> ventana del plano, si no el documento. No recuerdo cuando se separo, por un
>>>>> lado el interface grafico y por otro la logica del documento.
>>>>>
>>>>> Un saludo
>>>>> Joaquin
>>>>>
>>>>>
>>>>>
>>>>> from org.gvsig.app import ApplicationLocator
>>>>> from org.gvsig.app.project.documents.layout import LayoutManager
>>>>>
>>>>> def main(*args):
>>>>>   # Recuperamos el proyecto
>>>>>   project = ApplicationLocator.getManager().getCurrentProject()
>>>>>
>>>>>   # Opcion 1
>>>>>   # Recorremos los layouts que hay en el proyecto
>>>>>   layouts = project.getDocuments(LayoutManager.TYPENAME)
>>>>>   for layout in layouts:
>>>>>     print layout.__class__.__name__, layout.getName()
>>>>>     contextLayout = layout.getLayoutContext()
>>>>>     for elemento in  contextLayout.getAllFFrames():
>>>>>       print elemento.getName()
>>>>>
>>>>>   print "----------------------------"
>>>>>
>>>>>   # Opcion 2
>>>>>   # Recuperamos un layout por nombre
>>>>>   layout = project.getDocument("Plantilla", LayoutManager.TYPENAME)
>>>>>   print layout.__class__.__name__, layout.getName()
>>>>>   contextLayout = layout.getLayoutContext()
>>>>>   for elemento in  contextLayout.getAllFFrames():
>>>>>     print elemento.getName()
>>>>>
>>>>>   print "----------------------------"
>>>>>
>>>>>   # Como obtener la venta del layout
>>>>>   layoutManager =
>>>>> ApplicationLocator.getProjectManager().getDocumentManager(LayoutManager.TYPENAME)
>>>>>
>>>>>   layout = project.getDocument("Plantilla", LayoutManager.TYPENAME)
>>>>>   layoutPanel = layoutManager.getMainWindow(layout)
>>>>>   print layoutPanel.__class__.__name__,
>>>>> layoutPanel.getDocument().getName()
>>>>>
>>>>> Esto con el proyecto que tengo cargado saca:
>>>>>
>>>>> Running script test_layout2.
>>>>> DefaultLayoutDocument Plantilla
>>>>> FFrameGraphics
>>>>> FFrameGraphics
>>>>> FFrameGraphics
>>>>> FFrameGraphics
>>>>> FFrameText
>>>>> FFrameText
>>>>> FFrameText
>>>>> FFrameView
>>>>> FFrameScaleBar
>>>>> FFrameLegend
>>>>> FFrameText
>>>>> FFrameOverView
>>>>> FFrameGraphics
>>>>> FFrameNorth
>>>>> FFramePicture
>>>>> ----------------------------
>>>>> DefaultLayoutDocument Plantilla
>>>>> FFrameGraphics
>>>>> FFrameGraphics
>>>>> FFrameGraphics
>>>>> FFrameGraphics
>>>>> FFrameText
>>>>> FFrameText
>>>>> FFrameText
>>>>> FFrameView
>>>>> FFrameScaleBar
>>>>> FFrameLegend
>>>>> FFrameText
>>>>> FFrameOverView
>>>>> FFrameGraphics
>>>>> FFrameNorth
>>>>> FFramePicture
>>>>> ----------------------------
>>>>> LayoutPanelImpl Plantilla
>>>>> Script test_layout2 terminated.
>>>>>
>>>>>
>>>>>
>>>>>> Muchas gracias de antemano,
>>>>>> un saludo
>>>>>> Ana
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> gvSIG_desarrolladores mailing list
>>>>>> gvSIG_desarrolladores en 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:
>>>>>> <http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores>
>>>>>> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> --------------------------------------
>>>>> Joaquin Jose del Cerro Murciano
>>>>> Development and software arquitecture manager at gvSIG Team
>>>>> jjdelcerro en gvsig.com
>>>>> jjdelcerro en gvsig.org
>>>>> gvSIG Association
>>>>> www.gvsig.com
>>>>> www.gvsig.org
>>>>>
>>>>> _______________________________________________
>>>>> gvSIG_desarrolladores mailing list
>>>>> gvSIG_desarrolladores en 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:
>>>>> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>>>>>
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> gvSIG_desarrolladores mailing listgvSIG_desarrolladores en 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: http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>>>>
>>>>
>>>> --
>>>>
>>>> Llu铆s Marqu茅s Castell贸 / Ingeniero software
>>>>
>>>> [image: DISID] <lmarques en disid.com> [image: DISID]
>>>> <http://twitter.com/llumarca>
>>>> [image: DISID] <http://www.disid.com>
>>>>
>>>> DISID Corporation S.L. Tfno: 34 963 516 309 / Fax: 96 119 81 10
>>>> C/ San Vicente 84, 5 A 46002 Valencia - Espa帽a
>>>> http://www.disid.com
>>>>
>>>> [image: Facebook] <http://www.facebook.com/DISIDCorp> [image: Twitter]
>>>> <http://twitter.com/disid_corp> [image: Linkedin]
>>>> <http://www.linkedin.com/company/disid> [image: Github]
>>>> <http://github.com/disid/>
>>>> *Proveedor de soluciones software*
>>>>
>>>> Confidencialidad: Esta comunicaci贸n contiene informaci贸n que puede ser
>>>> confidencial y privilegiada. Es para uso exclusivo del destinatario
>>>> indicado. Si no es Vd. el destinatario, por favor tome nota de que
>>>> cualquier distribuci贸n, copia o uso de esta comunicaci贸n o informaci贸n est谩
>>>> estrictamente prohibido. Si ha recibido este mensaje por error, por favor
>>>> av铆senos por e-mail a info en disid.com y despu茅s destruya el mensaje y
>>>> cualquier copia de 茅l. Las opiniones expresadas en el mensaje pueden ser
>>>> personales y no necesariamente opiniones de DISID Corporation, S.L.
>>>>
>>>> Virus y Seguridad: Aunque hemos tomado las medidas para asegurarnos
>>>> que este correo electr贸nico y sus ficheros adjuntos est谩n libres de virus,
>>>> le recomendamos que a efectos de mantener buenas pr谩cticas de seguridad, el
>>>> receptor debe asegurarse que este correo y sus ficheros adjuntos est谩n
>>>> libres de virus.
>>>>
>>>>
>>>> _______________________________________________
>>>> gvSIG_desarrolladores mailing list
>>>> gvSIG_desarrolladores en 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:
>>>> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>>>>
>>>>
>>>
>>>
>>> --
>>> --------------------------------------
>>> Joaquin Jose del Cerro Murciano
>>> Development and software arquitecture manager at gvSIG Team
>>> jjdelcerro en gvsig.com
>>> jjdelcerro en gvsig.org
>>> gvSIG Association
>>> www.gvsig.com
>>> www.gvsig.org
>>>
>>> _______________________________________________
>>> gvSIG_desarrolladores mailing list
>>> gvSIG_desarrolladores en 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:
>>> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>>>
>>>
>>
>> _______________________________________________
>> gvSIG_desarrolladores mailing list
>> gvSIG_desarrolladores en 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:
>> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>>
>>
>
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en 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:
> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>
>
------------ pr髕ima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20151023/fb0241b7/attachment.htm 
------------ pr髕ima parte ------------
Se ha borrado un mensaje que no est谩 en formato texto plano...
Nombre     : bdeciebd.png
Tipo       : image/png
Tama帽o     : 603 bytes
Descripci贸n: no disponible
Url        : http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20151023/fb0241b7/attachment.png 
------------ pr髕ima parte ------------
Se ha borrado un mensaje que no est谩 en formato texto plano...
Nombre     : hahcfbda.png
Tipo       : image/png
Tama帽o     : 737 bytes
Descripci贸n: no disponible
Url        : http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20151023/fb0241b7/attachment-0001.png 
------------ pr髕ima parte ------------
Se ha borrado un mensaje que no est谩 en formato texto plano...
Nombre     : ecbggaai.png
Tipo       : image/png
Tama帽o     : 871 bytes
Descripci贸n: no disponible
Url        : http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20151023/fb0241b7/attachment-0002.png 
------------ pr髕ima parte ------------
Se ha borrado un mensaje que no est谩 en formato texto plano...
Nombre     : jbbagihd.png
Tipo       : image/png
Tama帽o     : 3310 bytes
Descripci贸n: no disponible
Url        : http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20151023/fb0241b7/attachment-0003.png 
------------ pr髕ima parte ------------
Se ha borrado un mensaje que no est谩 en formato texto plano...
Nombre     : ajhjhdag.png
Tipo       : image/png
Tama帽o     : 909 bytes
Descripci贸n: no disponible
Url        : http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20151023/fb0241b7/attachment-0004.png 
------------ pr髕ima parte ------------
Se ha borrado un mensaje que no est谩 en formato texto plano...
Nombre     : befdbihe.png
Tipo       : image/png
Tama帽o     : 177 bytes
Descripci贸n: no disponible
Url        : http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20151023/fb0241b7/attachment-0005.png 
------------ pr髕ima parte ------------
Se ha borrado un mensaje que no est谩 en formato texto plano...
Nombre     : jdadeejc.png
Tipo       : image/png
Tama帽o     : 243 bytes
Descripci贸n: no disponible
Url        : http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20151023/fb0241b7/attachment-0006.png 


M醩 informaci髇 sobre la lista de distribuci髇 gvSIG_desarrolladores