Disponible en inglés en este enlace.
Introducción
La aplicación Tras-Mi-SIG permite consultar y visualizar las rutas asociadas a un par de estaciones del sistema Transmilenio, teniendo en cuenta el día, la hora y el sentido del viaje. Como resultado Tras-Mi-SIG genera un reporte que contiene varios criterios para decidir la ruta óptima, como son el tiempo de viaje y el número de paradas en el trayecto.

¿Qué es Tras-Mi-SIG?
Tras-Mi-SIG es una aplicación de escritorio en Windows que está desarrollada con base en el siguiente software:
-
-
SharpDevelop: IDE Open Source escrito en C#. Licencia GPL. Versión 2.2.1. http://www.icsharpcode.net/OpenSource/SD/
-
SharpMap: Librería de desarrollo espacial escrita en C#. Licencia GPL. Versión 0.9. http://www.codeplex.com/SharpMap
-
Npgsql: Proveedor de datos Postgres nativo para .NET. Escrito en C#. Licencia BSD. Versión 1.0. http://pgfoundry.org/projects/npgsql/
-
Postgres: Sistema Manejador de Bases de Datos. Versión 8.2. Licencia BSD. http://www.postgresql.org/
-
Postgis: Extensión espacial para Postgres. Licencia GPL. Versión 1.3.2. http://postgis.refractions.net/
-
.NET Framework: Marco de desarrollo .NET. Licencia Freeware. Versión 2.0. http://msdn.microsoft.com/netframework/
-
Tras-Mi-SIG emplea los resultados de muchos proyectos de software libre y de código abierto, pretendiendo demostrar su validez en la construcción de soluciones geoinformáticas.
¿Cómo está compuesto?
Tras-Mi-SIG tiene los siguientes componentes:
Persistencia: Base de datos en Postgres/Postgis que contiene tablas alfanuméricas, tablas espaciales y funciones PL/PgSQL personalizadas.
Acceso a Datos: Componente Npgsql para acceder y ejecutar consultas a la base de datos Postgres/Postgis.
Presentación: Código en C# para presentar los datos en la interfaz principal de la aplicación y capturar los parámetros que el usuario define para su viaje por el sistema Transmilenio.
¿Cómo funciona?
Tras-Mi-SIG hace uso del lenguaje de programación C# y del componente Sharpmap para capturar los parámetros del viaje, los cuales al ser enviados por el usuario, son utilizados para hacer llamados a funciones PL/PgSQL personalizadas (que retornan el tiempo y el número de paradas de cada ruta) y para construir vistas espaciales de Postgis en tiempo de ejecución (que permiten resaltar gráficamente los elementos espaciales que componen el viaje).
Las funciones PL/PgSQL permiten ubicar la lógica del negocio en el Sistema Manejador de Bases de Datos Postgres, lo cual aisla el comportamiento de las estaciones y rutas de la capa de presentación de la aplicación, facilitando su mantenimiento y aumentando su interoperabilidad con otros sistemas.
Instalación
Para instalar Tras-Mi-SIG se deben seguir los siguientes pasos:
1. Instalar la base de datos Tras-Mi-SIG:
Para instalar la base de datos “trasmisig” se debe contar con Postgres y su extensión espacial PostGIS.
En el terminal de Postgres se crea el usuario al que se asignará la base de datos:
createuser.exe -S -d -r -l -i -P usuario -U postgres
Donde, -S: No es superusuario, -d: Puede crear BD, -r: Puede crear roles, -l: Puede loguearse, -i: Hereda de roles superiores, -P: Fijar el password, -U: Usuario que ejecuta la orden.
Se escribe la contraseña “usuario” para el usuario llamado “usuario”.
Se crea la base de datos “trasmisig” con el siguiente comando:
createdb.exe trasmisig -O usuario -h localhost -E LATIN1 -U postgres
Donde -O: Usuario al que pertenece la base de datos, -h: Servidor, -E: Codificación, -U: Usuario que ejecuta la orden.
Se debe descargar el archivo SQL con la estructura y los datos de Tras-Mi-SIG aquí (356 Kb). Para importar el archivo SQL descargado a la base de datos “trasmisig” creada, se ejecuta el siguiente comando:
psql.exe -f d:\bd_trasmisig_v1.sql -U postgres
Donde -f: Ruta al archivo SQL, -U: Usuario que ejecuta la orden.
Ahora se debe instalar la aplicación.
2. Instalar la aplicación:
Para instalar la aplicación Tras-Mi-SIG se debe descargar el archivo de instalación desde aquí (914 Kb) y posteriormente ejecutarlo, definiendo los parámetros convencionales del proceso (aceptación de la licencia, ruta de la aplicación y grupo de programas en el menú inicio).

¿Cómo se usa?
Al ejecutar la aplicación Tras-Mi-SIG aparece la interfaz mostrando información espacial básica (ciudad de Bogotá y red de transporte masivo Transmilenio, compuesta por estaciones y segmentos de ruta). Se disponen en la parte central, algunos botones para manipular y consultar el mapa.

Definir los parámetros del viaje:
Para definir el viaje a realizar se deben ingresar los siguientes parámetros en la parte superior de la ventana:
-
-
Estación de Origen: Corresponde a la estación del sistema desde la cual inicia el viaje.
-
Estación de Destino: Corresponde a la estación del sistema donde finaliza el viaje.
-
Día: Día de la semana en que se efectúa el viaje.
-
Hora: Hora del día en la cual se parte de la estación de origen.
-

Para definir la estación de origen y la estación de destino se tienen dos opciones:
1. Seleccionar las estaciones en las listas desplegables ubicadas en la parte superior de la interfaz.

2. Utilizar la herramienta Seleccionar Estación que permite interactuar con el mapa a través de un click sobre la estación de interés.

El día y la hora del viaje se definen en las listas desplegables de la parte superior de la interfaz de la aplicación. La hora está en el formato 24h (por ejemplo, 18:00 equivale a 6:00pm).
Una vez definidos los parámetros del viaje, se debe dar click en el botón Calcular Rutas.
Despliegue de resultados:
La aplicación desplegará en el mapa el viaje seleccionado y en la parte inferior un reporte detallado que contiene la siguiente información de la ruta:
-
-
Número: Consecutivo para cada ruta encontrada por la aplicación.
-
Ruta: Nombre de la ruta del sistema de transporte que pasa por las estaciones de origen y destino.
-
Origen: Nombre de la estación de origen del viaje.
-
Destino: Nombre de la estación de destino del viaje.
-
Tiempo: Tiempo que tarda el viaje en minutos.
-
No. Paradas: Número de paradas intermedias que debe realizar el bus del sistema.
-
Servicio: Tipo de servicio al que pertenece la ruta. Puede ser Expreso (si la ruta tiene paradas que optimizan el tiempo del viaje) o Corriente (si la ruta se detiene en todas las estaciones comprendidas entre las estaciones de origen y destino del viaje).
-

En el reporte aparece seleccionada por defecto la primera ruta (fila de color lila), desplegando sus paradas (puntos amarillos) y su recorrido (línea rojo) en el mapa.

Si existe más de una ruta que pase por las estaciones de origen y destino, la ruta seleccionada en el reporte determina las paradas y el recorrido representado en el mapa.
Si la selección de la ruta en el reporte cambia, el mapa se ajusta automáticamente desplegando las paradas y el recorrido de la ruta seleccionada.
![]() |
![]() |
Acercándose un poco en el mapa, se muestran las etiquetas de las estaciones por las que pasa la ruta, permitiendo facilitar la lectura del recorrido.

Si se quiere consultar otro viaje, se debe dar click en el botón “Ingresar nueva ruta” y volver a ingresar los parámetros.
Posibles mejoras
Transmilenio posee un conjunto de buses alimentadores que permiten ampliar el área de influencia del sistema. En su versión 1.0, Tras-Mi-SIG no tiene en cuenta las rutas alimentadores debido a la complejidad que le agregan a la aplicación, sin embargo, constituye una de las posibles mejoras a realizar.
En ciertas ocasiones, tomar más de una ruta puede disminuir el tiempo de viaje manteniendo el mismo costo. La implementación de este escenario, constituiría otra mejora a la aplicación.
Conclusiones y Aclaraciones
Los datos empleados en Tras-Mi-SIG son ficticios y no corresponden completamente a la realidad, pues se crearon para llevar a cabo las pruebas de la aplicación.
Este artículo ha sido concebido como una muestra de la utilidad que proveen los proyectos de software libre y de código abierto.
Agradecimientos
Agradezco al especialista Samuel Mesa, integrante del equipo GeoTux, por sus sugerencias sobre la aplicación y por llevar a cabo el proceso de cargue de datos correspondiente a tablas alfanuméricas y espaciales.
Referencias consultadas:
-
Proyecto SharpMap. URL: http://www.codeplex.com/SharpMap (Última visita: Abril, 2008)
-
Proyecto SharpDevelop. URL: http://www.icsharpcode.net/OpenSource/SD/ (Última visita: Abril, 2008)
-
Proyecto Npgsql. URL: http://pgfoundry.org/projects/npgsql/ (Última visita: Abril, 2008)
-
Transmilenio. URL: http://www.transmilenio.gov.co (Última visita: Abril, 2008)
Puede descargar este artículo en formato PDF en este enlace (330Kb).
comments
¿Es posible que nos enseñes ha realizar una aplicación como la de trasmisig paso a paso.? o ¿Que publiques los documentos en los cuales te basaste para su diseño?
Nuevamente mil gracias.
Gracias
Con respecto a las funciones en PostgreSQL, hay un enlace para descargar la base de datos y allí dentro están las funciones, ese código puedes verlo con PgAdmin III.
Saludos.
Nuevamente mil gracias!
saludos
La aplicación recibe los parámetros: Estación inicial, estación de llegada, día del viaje, hora del viaje y a partir de funciones en PL/PgSQL (CompararDia, CalcularTiempo, CalcularNoParad as, CrearVistaRuta, CrearVistaEstac iones, CrearVistaParad as y CrearVistaEtiqu etasRuta) se construyen vistas de Postgis que permiten obtener un grupo de estaciones y de segmentos (los que pertenecen a la ruta definida por los parámetros) que son representadas en la aplicación con una simbología especial.
Para ejecutar las funciones de Postgis en la aplicación se emplea la librería Npgsql, como en el siguiente ejemplo:
Quote:
La aplicación carga las vistas que sirven para mostrar los segmentos y estaciones de la ruta de interés y muestra en un control dataGrid una tabla con los resultados de las consultas SQL contenidas en las funciones mencionadas.
Espero les sirva la información.
en un principio TrasMiSIG estuvo basado en SharpMap, esa versión es la que ves en este post y no corre sobre Linux pues utiliza .Net (hace rato le perdí el rastro al proyecto Mono que prometía superar este problema).
La nueva versión de TrasMiSIG corre sobre GNU/Linux, Mac OS X y Windows puesto que está basada en PyQGIS, échale un vistazo en este enlace (http://geotux.tuxfamily.org/index.php?option=com_myblog&task=view&id=213&Itemid=59).
Saludos,
Tuxman
RSS feed for comments to this post