Tu agencia no es genérica. Tus pantallas tampoco deberían serlo.
La suite de código abierto maneja la información de tránsito que toda agencia necesita. Lo que no puede saber es tu hardware, tu flota, tu marca y la manera particular en que se publica tu feed. Esa parte la construimos para ti — como un módulo delgado junto al núcleo, nunca un fork.
En lenguaje sencillo
El software gratuito hace lo que toda agencia necesita.
No puede saber sobre tus pantallas, tus autobuses o tu marca. Esa parte la construimos para ti.
La añadimos junto al software gratuito, no dentro de él. Así puedes seguir recibiendo actualizaciones.
El resto de esta página muestra una agencia para la que hicimos esto.
Lo que puede añadir una capa personalizada
Seis tipos de trabajo, en orden aproximado de frecuencia con que las agencias los solicitan.
-
Diseños de hardware para pantallas
Variantes para tus pantallas: pilonos de dos pantallas, tableros de pantalla única, mapas de sistema, e‑ink, vertical u horizontal — registradas como diseños en el motor de pantallas compartido, con tu tipografía y marca.
-
Libreas de vehículos de flota
Iconos por vehículo en mapas en vivo, indexados por ID de vehículo, para que un tranvía histórico o un autobús de marca aparezca como sí mismo en lugar de un marcador genérico.
-
Cartografía de marca
Un estilo de mapa base vectorial propio, para que cada mapa integrado coincida con tu identidad en lugar de un mapa web genérico — intercambiable por despliegue desde un ajuste de administración.
-
Peculiaridades del feed
Identificadores en tiempo real que no coinciden con tu feed estático, enriquecimiento de rutas específico de la agencia, pipelines de importación ajustados a cómo se publica realmente tu GTFS.
-
Extensiones GTFS
Los archivos de extensión que publica tu región — GTFS+ y más allá — modelados como entidades de primera clase junto a la especificación estándar.
-
Integración con sitio web
Mapas en vivo, tableros y horarios dentro del sitio que ya operas, con seguridad de marco por origen y enlaces que llevan de vuelta a tus propias páginas.
Cómo se ve eso en la práctica. El resto de esta página es la capa de una agencia, en producción — lo que contiene y por qué sigue siendo una capa.
Caso de estudio: la capa personalizada de SFMTA
La San Francisco Municipal Transportation Agency ejecuta la suite de código abierto con tres pequeños módulos propios: pilonos de plataforma con la tipografía de Muni, libreas de tranvías históricos en el mapa en vivo y la brecha de identificadores que viene con un feed regional. Todo lo siguiente es aditivo.
El pilono de dos pantallas
Los pilonos de plataforma ejecutan dos paneles apilados. La pantalla superior lleva la marca de la agencia y la insignia de la ruta activa, dimensionada para leerse desde el otro lado de la plataforma; la pantalla inferior sigue con las alertas de esa ruta, salidas en vivo y mapa de la ruta. Ambos paneles consultan un endpoint y pasan páginas sincronizados, así que nunca discrepan sobre qué ruta están mostrando — la pareja de abajo fue capturada en media rotación, ambos en el 25 Treasure Island.
Cada panel es un rol en el motor de pantallas compartido. El módulo de la agencia registra el diseño, la tipografía Frutiger, las etiquetas de sección en cuatro idiomas y el emparejamiento de dos pantallas; el núcleo proporciona los datos, las consultas y el reloj de paginación.
Una pantalla donde un par no cabe
No toda bahía tiene espacio para dos paneles. Los pilonos de pantalla única llevan toda la historia en una superficie: insignia de ruta, salidas en vivo agrupadas por destino, el patrón de servicio en palabras y el mapa propio de la línea.
Es el mismo módulo y el mismo diseño — un segundo diseño de página, no una segunda base de código. Cuál muestra una pantalla dada es un ajuste en su contexto de pantalla, para que la agencia cambie una bahía de un diseño al otro sin un despliegue.
El mapa en vivo, en las propias páginas de ruta de la agencia
La página de F Market & Wharves en sfmta.com lleva un mapa en vivo como iframe. El sitio de la agencia mantiene su propio stack, chrome y navegación; el mapa llega con la maquinaria en tiempo real ya dentro.
Cada tranvía con su propia pintura
La línea F opera tranvías históricos, cada uno con la librea de una ciudad y época diferente. Los marcadores genéricos descartarían eso, así que el módulo de la agencia proporciona un icono por ID de vehículo — un PNG con el nombre del vehículo, sin cambio de código para añadir uno.
Horarios del mismo feed
Los horarios publicados se generan del GTFS importado, por dirección y día de servicio, con encabezados de parada que enlazan a la propia página de cada parada.
Por qué sigue siendo una capa
Todo lo anterior es registro, inyección y valores por defecto — trabajo para el que el núcleo ya publica hooks. Esa es la parte que se transfiere: la agencia sigue los mismos módulos de código abierto que todos los demás ejecutan, y su propio código se mantiene lo suficientemente pequeño para leerlo en una tarde.
- Núcleo upstream — sin parches que mantener, así que una actualización es una actualización
- Basado en hooks — tres hooks llevan la mayor parte de la personalización
- Configuración semilla — los valores por defecto de la agencia se instalan solos y luego pertenecen a la interfaz de administración
# One thin agency module, three hooks hook_gtfs_display_variants_alter() → register the 'pylon' hardware skin hook_gtfs_display_map_rt_vehicle_icons_alter() → per-vehicle liveries from vehicleIcons/*.png hook_gtfs_display_rt_entity_ids_alter() → map static stop IDs to realtime feed IDs
Compatible con
Las especificaciones que implementa la suite, las fuentes de feeds con las que ya ha funcionado y el software subyacente.
Pon tu feed a trabajar.
Tu hardware, flota y peculiaridades de feed no serán estos. Cuéntanos qué tiene de raro tu sistema — determinar qué pertenece a la capa y qué pertenece al upstream es nuestra parte favorita del trabajo.