<div dir="ltr">Gracias Joaquin, todas las indicaciones que me diste me cayeron como anillo al dedo.<br></div><br><div class="gmail_quote"><div dir="ltr">El mié., 15 de feb. de 2017 a la(s) 18:10, Joaquin Jose del Cerro Murciano &lt;<a href="mailto:jjdelcerro@gvsig.org">jjdelcerro@gvsig.org</a>&gt; escribió:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg"><div class="gmail_extra gmail_msg"><div class="gmail_quote gmail_msg">El 15 de febrero de 2017, 18:38, Alex Irmel Oviedo Solis <span dir="ltr" class="gmail_msg">&lt;<a href="mailto:alleinerwolf@gmail.com" class="gmail_msg" target="_blank">alleinerwolf@gmail.com</a>&gt;</span> escribió:<br class="gmail_msg"><blockquote style="margin-top:0px;margin-bottom:0px" class="gmail_quote gmail_msg"><div dir="ltr" class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg">Hola a todos, estoy viendo los ejemplos de scripting en python y no encuentro un ejemplo donde se cree una capa vectorial a partir de una consulta a una bd en postgresql.<br class="gmail_msg"><br class="gmail_msg"></div>Otra pregunta que tengo es como haria para usar un resultset de jdbc para generar la capa con los poligonos, uno de los campos es geometry.<br class="gmail_msg"><br class="gmail_msg"></div></div></blockquote></div></div></div><div dir="ltr" class="gmail_msg"><div class="gmail_extra gmail_msg"><div class="gmail_quote gmail_msg"><div class="gmail_msg"><br class="gmail_msg">Hola Alex,<br class="gmail_msg">un par de cosas...<br class="gmail_msg"><br class="gmail_msg">El API que veas que existe para trabajar con un shape es<br class="gmail_msg">el mismo que para trabajar contra una BBDD con la excepcion de los parametros necesarios<br class="gmail_msg">para crear el store. Esto es cierto en general, y sobre todo en el API java, salvo <br class="gmail_msg">que en la parte de scripting se han creado algunos metodos de utilidad que trabajan <br class="gmail_msg">especificamente con shapes.<br class="gmail_msg"><br class="gmail_msg">Te pego aqui un pequeño script que abre una fuente de datos de postgresql y<br class="gmail_msg">la carga en una capa de la vista corriente.<br class="gmail_msg"><br class="gmail_msg">#--&gt;&lt;----------&gt;&lt;----------&gt;&lt;---------<br class="gmail_msg"># encoding: utf-8<br class="gmail_msg"><br class="gmail_msg">import gvsig<br class="gmail_msg">from org.gvsig.app import ApplicationLocator<br class="gmail_msg"><br class="gmail_msg">def main(*args):<br class="gmail_msg">  application = ApplicationLocator.getManager()<br class="gmail_msg">  mapContextManager = application.getMapContextManager()<br class="gmail_msg">        <br class="gmail_msg">  store = gvsig.openStore(<br class="gmail_msg">    &quot;PostgreSQL&quot;,<br class="gmail_msg">    dbname=&quot;mydb&quot;,<br class="gmail_msg">    host=&quot;localhost&quot;,<br class="gmail_msg">    schema=&quot;public&quot;,<br class="gmail_msg">    table=&quot;country&quot;,<br class="gmail_msg">    dbuser=&quot;postgres&quot;,<br class="gmail_msg">    password=&quot;postgres&quot;,<br class="gmail_msg">    CRS=&quot;EPSG:4326&quot;,<br class="gmail_msg">    PKFields=&quot;gid&quot;,<br class="gmail_msg">    defaultGeometryField=&quot;geom&quot;<br class="gmail_msg">  )<br class="gmail_msg">  # Ojo con este bucle, es muy peligroso, ya que puede<br class="gmail_msg">  # dejar bloqueado gvSIG hasta que termine de sacar por la<br class="gmail_msg">  # consola todos los registros. La salida por la consola es<br class="gmail_msg">  # muy lenta.<br class="gmail_msg">  for feature in store:<br class="gmail_msg">    print feature<br class="gmail_msg"><br class="gmail_msg">  layer = mapContextManager.createLayer(&quot;country&quot;, store)<br class="gmail_msg"><br class="gmail_msg">  store.dispose()<br class="gmail_msg"><br class="gmail_msg">  gvsig.currentView().addLayer(layer)<br class="gmail_msg"><br class="gmail_msg">#--&gt;&lt;----------&gt;&lt;----------&gt;&lt;---------<br class="gmail_msg"><br class="gmail_msg">Este pequeño script creo que responde a la pregunta sobre como cargar<br class="gmail_msg">una capa vectorial a partir de una tabla de la BBDD.<br class="gmail_msg"><br class="gmail_msg">Si precisas filtrar los datos de la capa puedes usar el metodo &quot;addBaseFilter&quot;<br class="gmail_msg">de la capa.<br class="gmail_msg"><br class="gmail_msg">La otra cosa...<br class="gmail_msg">sobre si se puede crear una capa a partir de un resultset de jdbc me temo que no.<br class="gmail_msg">Es algo que todo el mundo que empieza ha hacer cosas con gvSIG intenta hacer, y<br class="gmail_msg">es una muy muy muy mala idea.<br class="gmail_msg"><br class="gmail_msg">gvSIG para gestionar una capa precisa mas que un resulset. Cada vez que se hace un <br class="gmail_msg">pan o un zoom, se crea un resulset para recuperar los datos que se precisan, y esto no<br class="gmail_msg">lo podriamos hacer si la fuente de datos de la capa fuese un resulset.<br class="gmail_msg">Ni siquiera es aceptable que una capa sea una sentencia select en lugar de una<br class="gmail_msg">tabla. Es algo que inicialmente se puede hacer, pero luego las sentencias a usar<br class="gmail_msg">contra la BBDD se complican mucho cuando se tienen que añadir filtros espaciales sobre<br class="gmail_msg">esa select, y algunas cosas no funcionan del todo bien o los rendimientos bajan<br class="gmail_msg">mucho. Mi consejo es que uses DataStores basados en tablas y luego el metodo &quot;addBaseFilter&quot; <br class="gmail_msg">de la capa si precisas filtrar.<br class="gmail_msg"><br class="gmail_msg">Si lo que necesitas es hacer selects que involucren varias tablas para cargarlos como<br class="gmail_msg">capas, crea vistas en la BBDD y luego ataca a estas desde gvSIG como si fuesen tablas.<br class="gmail_msg">Ya se, en general seran solo de lectura, pero para la mayoria de los casos suele ser <br class="gmail_msg">suficiente.<br class="gmail_msg"><br class="gmail_msg">Otro consejo mas...<br class="gmail_msg">si quieres hacer cosas avanzadas desde scripting en gvSIG, usa el API de java <br class="gmail_msg">directamente siempre que sea posible. Ya se que esta menos documetado, pero tira<br class="gmail_msg">de los javadocs. En la documentacion de scripting <br class="gmail_msg"><br class="gmail_msg"><a href="http://downloads.gvsig.org/download/web/html/es/scripting_devel_guide/2.3/index.html" class="gmail_msg" target="_blank">http://downloads.gvsig.org/download/web/html/es/scripting_devel_guide/2.3/index.html</a><br class="gmail_msg"><br class="gmail_msg">Tienes los apartados:<br class="gmail_msg">2. Modelo de objetos simplificado<br class="gmail_msg">3. Modelo de clases simplificado<br class="gmail_msg"><br class="gmail_msg">Donde tienes algunos diagramas de clases simplificados con enlaces a los javadocs<br class="gmail_msg">que te pueden ser muy utiles.<br class="gmail_msg"><br class="gmail_msg">Tambien te recomiendo, a pesar de estar algo desactualizada, la documentacion sobre DAL:<br class="gmail_msg"><br class="gmail_msg"><a href="http://docs.gvsig.org/plone/projects/gvsig-desktop/docs/devel/org.gvsig.fmap.dal/2.0.0" class="gmail_msg" target="_blank">http://docs.gvsig.org/plone/projects/gvsig-desktop/docs/devel/org.gvsig.fmap.dal/2.0.0</a><br class="gmail_msg"><br class="gmail_msg">Un saludo<br class="gmail_msg">Joaquin<br class="gmail_msg"><br class="gmail_msg"> </div><blockquote style="margin-top:0px;margin-bottom:0px" class="gmail_quote gmail_msg"></blockquote></div></div></div><div dir="ltr" class="gmail_msg"><div class="gmail_extra gmail_msg"><div class="gmail_quote gmail_msg"><blockquote style="margin-top:0px;margin-bottom:0px" class="gmail_quote gmail_msg"><div dir="ltr" class="gmail_msg"><div class="gmail_msg"></div>Espero su pronta respuesta, saludos cordiales.<br class="gmail_msg"></div>
<br class="gmail_msg"></blockquote></div></div></div><div dir="ltr" class="gmail_msg"><div class="gmail_extra gmail_msg"><div class="gmail_quote gmail_msg"><blockquote style="margin-top:0px;margin-bottom:0px" class="gmail_quote gmail_msg">_______________________________________________<br class="gmail_msg">
gvSIG_desarrolladores mailing list<br class="gmail_msg">
<a href="mailto:gvSIG_desarrolladores@listserv.gva.es" class="gmail_msg" target="_blank">gvSIG_desarrolladores@listserv.gva.es</a><br class="gmail_msg">
Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección: <a rel="noreferrer" href="https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores" class="gmail_msg" target="_blank">https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores</a><br class="gmail_msg">
<br class="gmail_msg"></blockquote></div><br class="gmail_msg"><br clear="all" class="gmail_msg"><br class="gmail_msg">-- <br class="gmail_msg"><div class="m_-6640095185852236508gmail_signature gmail_msg">--------------------------------------<br class="gmail_msg">Joaquin Jose del Cerro Murciano<br class="gmail_msg">Development and software arquitecture manager at gvSIG Team<br class="gmail_msg"><a href="mailto:jjdelcerro@gvsig.com" class="gmail_msg" target="_blank">jjdelcerro@gvsig.com</a><br class="gmail_msg"><a href="mailto:jjdelcerro@gvsig.org" class="gmail_msg" target="_blank">jjdelcerro@gvsig.org</a><br class="gmail_msg">gvSIG Association<br class="gmail_msg"><a href="http://www.gvsig.com" class="gmail_msg" target="_blank">www.gvsig.com</a><br class="gmail_msg"><a href="http://www.gvsig.org" class="gmail_msg" target="_blank">www.gvsig.org</a></div>
</div></div>
_______________________________________________<br class="gmail_msg">
gvSIG_desarrolladores mailing list<br class="gmail_msg">
<a href="mailto:gvSIG_desarrolladores@listserv.gva.es" class="gmail_msg" target="_blank">gvSIG_desarrolladores@listserv.gva.es</a><br class="gmail_msg">
Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección: <a href="https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores" rel="noreferrer" class="gmail_msg" target="_blank">https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores</a><br class="gmail_msg">
</blockquote></div>