Hola Francisco, muchas gracias por tu extensa e instructiva respuesta. Finalmente opté por crearme un visor propio en C# para la visualización de las diferentes capas y posiciones. Si necesito editar una capa ya lo hago directamente con gvSIG y posteriormente la cargo al visor. Con esto me apaño por ahora.
No obstante, me guardo tu ejemplo que seguro me será útil en algún momento en esta u otra aplicación. De nuevo, muchas gracias por tu tiempo! Un saludo. -- Huberto Alonso El 2 de marzo de 2017, 9:26, Francisco Puga <fp...@icarto.es> escribió: > Si se puede asumir como hipótesis que tienes una base de datos postgresql > y que los datos se irán actualizando en ella, no tienes necesidad de > programar nada a nivel gvSIG. A no ser que quieras algo un poco más > especial. Una opción sencilla de montarlo sería: > > *Tabla base* > > Una tabla donde una aplicación extenerna insertaría los datos. El valor de > "name" se usa para diferenciar distintas fuentes, por ejemplo dos coches > distintos. Y el default en la columna t hace que tengamos el instante en el > que se insertó el dato. > > create table real_time (gid serial primary key, name text, geom > geometry(point, 4326), t timestamp default now()); > > *Vista auto-actualizada* > > Creamos una vista donde para cada "name" distinto estará únicamente el > último insertado > > create view real_time view as select DISTINCT ON (name) gid, name, geom, t > from real_time order by t; > > *gvSIG* > > Cargamos la vista real_time_view como si fuera una simple capa de gvSIG. > Cuando cambien los dato por debajo la capa debería actualizarse > automáticamente. Si no, en plan cutre, puedes usar el botón de reload o > abrir y cerrar la edición que suelen forzar una recarga de los datos, o > incluso hacer pan a otra zona y volver. > > *Como prueba* > > Como prueba. Crea la tabla y la vista en la base de datos. Abre gvSIG y > carga la vista. Inserta puntos poco a poco en la base de datos y mira como > cambian. > > insert into real_time (name, geom) values ('coche 1', > st_setsrid(st_makepoint(-1, 38), 4326)); > insert into real_time (name, geom) values ('coche 2', > st_setsrid(st_makepoint(-2, 39), 4326)); > > insert into real_time (name, geom) values ('coche 1', > st_setsrid(st_makepoint(-1, 39), 4326)); > insert into real_time (name, geom) values ('coche 2', > st_setsrid(st_makepoint(-2, 40), 4326)); > > insert into real_time (name, geom) values ('coche 1', > st_setsrid(st_makepoint(-1, 40), 4326)); > insert into real_time (name, geom) values ('coche 2', > st_setsrid(st_makepoint(-2, 41), 4326)); > > > Si necesitas algo más complejo seguramente con un servicio en la nube tipo > firebase o servicios push-sub, lo puedes conseguir. O bien lo que dices tu > mediante scripting. > > _______________________________________________ > 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