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