<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">El 22 de octubre de 2015, 13:18, Tomás Cabezudo <span dir="ltr"><<a href="mailto:tcabezudo@gmail.com" target="_blank">tcabezudo@gmail.com</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><p class="MsoNormal">Una pequeña observación:</p>
<p class="MsoNormal">mi objetivo es marcar ciertos municipios sobre la vista,
para lo cual vuestro código ha funcionado perfectamente.</p>
<p class="MsoNormal">El siguiente paso es que esa vista la quiero llevar a un
mapa como un 'marco de vista', ahí ya no veo esos municipios 'marcados' . </p>
<p class="MsoNormal">Entiendo que al ser una capa virtual sobre la que dibuja los
gráficos, no se puede llevar sobre el marco de vista del mapa ¿es cierto esa
suposición?</p>
<p class="MsoNormal">¿Habría alguna manera de poder verlo sobre el mapa?</p>
<p class="MsoNormal"></p></div></blockquote><div><br>No me habia dado cuenta nunca, pero efectivamente, cuando se inserta<br>una vista en el mapa no se copia el graphicsLayer. Probablemente estaria<br></div><div>bien ver de meter algun check que indique que quieres mantener sincronizado<br></div><div>el graphicsLayer de la vista.<br></div><div><br>Supongo que tendra algun problema de persistencia.<br>Como el graphicsLayer vive en memoria y es muy cambiante dudo que <br>al guardar el proyecto y recuperarlo este ahi de nuevo y probablemente<br>por eso no se incluyo en el layout.<br><br>No tengo muy claro como solucionarlo, aunque dejo aqui algunas<br>ideas que no termino de ver como encajarlas sin mas contexto de <br>que hace la aplicacion.<br><br>- Es posible copiar el graphicsLayer de la vista en el mapa.<br> Lo que no se es cuando tendrias que hacerlo.<br><br>- Puedes acceder al MapContext de la vista del layout e insertar<br> en el los graficos. <br><br>Y pasando ha hacer algo completamente distinto, en lugar de usar<br>el GraphicsLayer tambien podrias ver de generar alguna capa (shp) <br>con las geometrias que quieras y insertarla en la vista con una leyenda <br>especifica (tal vez una de catagorias). Eso seguro que se ve en el mapa.<br><br>He probado ha hacer un script de forma rapida para probar el primer<br>caso y parece que funcionaria. Te dejo aqui el script por si ir<br>por esa linea te sirbe de algo. Es facilmente pasable a java.<br><br>Ya cuentas por donde tiras.<br><br>Un saludo<br>Joaquin<br><br>#--------------><----------------><--------------<br><br># ==========================================================<br>#<br># Declara como que el plugin de scripting puede importar modulos <br># de otro plugin de gvSIG.<br>#<br># Por ejemplo, tras ejecutar:<br>#<br># use_plugin("org.gvsig.app.document.layout2.app.mainplugin")<br>#<br># Ya podriamos importar modulos del plugin de Mapas (documento mapa)<br>#<br><br>def use_plugin(pluginName):<br> from org.gvsig.andami import PluginsLocator<br><br> pluginsManager = PluginsLocator.getManager()<br> other = pluginsManager.getPlugin(pluginName)<br> scripting = pluginsManager.getPlugin("org.gvsig.scripting.app.extension")<br> scripting.addDependencyWithPlugin(other)<br><br>#<br># ==========================================================<br>#<br>use_plugin("org.gvsig.app.document.layout2.app.mainplugin")<br><br>from gvsig_2_0_0 import *<br>from org.gvsig.app.project.documents.layout import DefaultLayoutManager<br> <br>def main(*args):<br><br> view = currentView()<br> viewMapContext = view.getMapContext()<br> <br> # Obtenemos el objeto que se corresponde con el proyecto.<br> proyecto = currentProject()() # Ojo con los dobles perentesis<br><br> # Localizamos el mapa de nombre "prueba" de entre los documentos del proyecto<br> mapa = proyecto.getDocument("prueba",DefaultLayoutManager.TYPENAME )<br><br> context = mapa.getLayoutContext()<br><br> # Nos recorremos todos los elementos del mapa buscando la vista<br> for elemento in context.getAllFFrames():<br> if "FFrameView" in elemento.__class__.__name__:<br> mapContext = elemento.getMapContext()<br> mapContext.setGraphicsLayer(viewMapContext.getGraphicsLayer())<br> mapContext.invalidate()<br><br> context.fullRefresh() <br><br>#--------------><----------------><--------------<br><br> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><p class="MsoNormal"> </p>
<p class="MsoNormal">Gracias, un saludo</p></div><br clear="all"></blockquote></div><br>-- <br><div class="gmail_signature">--------------------------------------<br>Joaquin Jose del Cerro Murciano<br>Development and software arquitecture manager at gvSIG Team<br><a href="mailto:jjdelcerro@gvsig.com" target="_blank">jjdelcerro@gvsig.com</a><br><a href="mailto:jjdelcerro@gvsig.org" target="_blank">jjdelcerro@gvsig.org</a><br>gvSIG Association<br><a href="http://www.gvsig.com" target="_blank">www.gvsig.com</a><br><a href="http://www.gvsig.org" target="_blank">www.gvsig.org</a></div>
</div></div>