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

Javier Gal醤 javiergalans en gmail.com
Vie Oct 23 10:56:13 CEST 2015


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
>
>
------------ pr髕ima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20151023/6d78b216/attachment.htm 
------------ 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/6d78b216/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/6d78b216/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/6d78b216/attachment-0002.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/6d78b216/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/6d78b216/attachment-0004.png 
------------ 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/6d78b216/attachment-0005.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/6d78b216/attachment-0006.png 


M醩 informaci髇 sobre la lista de distribuci髇 gvSIG_desarrolladores