<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">&lt;<a href="mailto:tcabezudo@gmail.com" target="_blank">tcabezudo@gmail.com</a>&gt;</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 &#39;marco de vista&#39;, ahí ya no veo esos municipios &#39;marcados&#39; . </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>#--------------&gt;&lt;----------------&gt;&lt;--------------<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(&quot;org.gvsig.app.document.layout2.app.mainplugin&quot;)<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(&quot;org.gvsig.scripting.app.extension&quot;)<br>  scripting.addDependencyWithPlugin(other)<br><br>#<br># ==========================================================<br>#<br>use_plugin(&quot;org.gvsig.app.document.layout2.app.mainplugin&quot;)<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 &quot;prueba&quot; de entre los documentos del proyecto<br>  mapa = proyecto.getDocument(&quot;prueba&quot;,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 &quot;FFrameView&quot; in elemento.__class__.__name__:<br>      mapContext = elemento.getMapContext()<br>      mapContext.setGraphicsLayer(viewMapContext.getGraphicsLayer())<br>      mapContext.invalidate()<br><br>  context.fullRefresh() <br><br>#--------------&gt;&lt;----------------&gt;&lt;--------------<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>