[Gvsig_desarrolladores] Posiciones en tiempo real

Huberto Alonso hubertoalonso en gmail.com
Jue Mar 2 09:55:04 CET 2017


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 <fpuga en 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 en 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
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20170302/03ea5e73/attachment.html>


Más información sobre la lista de distribución gvSIG_desarrolladores