API de Tracking para Transporte: Guía de Tiempo Real

API de Tracking para Transporte: Guía de Tiempo Real

Introducción

El tracking GPS en tiempo real se ha convertido en servicio esencial para empresas logísticas. Esta guía técnica muestra cómo implementar tracking de flotas mediante API.

---

Fundamentos del Tracking

### Componentes

| Componente | Función | | ------------ | ------------------------ | | GPS Device | Captura posición | | Connectivity | Transmite datos | | API | Procesa y almacena | | Dashboard | Visualiza en tiempo real | | Alerts | Notificaciones |

---

API de Tracking

### Endpoints Principales

```python

Obtener posición actual

GET /api/v1/flotas/{flota_id}/posicion

Historial de posiciones

GET /api/v1/flotas/{flota_id}/historial?desde=2026-02-20&hasta=2026-02-21

Zonas y geofencing

POST /api/v1/zonas { "nombre": "Zona Madrid Centro", "tipo": "poligono", "coordenadas": [[40.4,-3.7], [40.5,-3.6], ...] } ```

### WebSocket para Tiempo Real

```python import websocket

ws = websocket.create_connection("wss://api.cargoffer.com/v1/ws/flota")

Suscribirse a actualizaciones

suscribcion = { "action": "suscribirse", "flota_id": "FLEET-001" }

ws.send(json.dumps(suscribcion))

Recibir actualizaciones

while True: resultado = ws.recv() posicion = json.loads(resultado) print(f"Vehículo: {posicion['vehiculo_id}") print(f"Lat: {posicion['latitud']}, Lon: {posicion['longitud']}") ```

---

Casos de Uso

| Caso | Implementación | | -------------------------- | -------------------------------- | | Seguimiento en tiempo real | WebSocket o polling cada 30s | | Geofencing | Webhooks en entrada/salida zonas | | Alertas velocidad | Comparar con límites | | Histórico | Batch queries | | Optimización rutas | Integrar con TMS |

---

Ejemplo: Dashboard Tiempo Real

```python from flask import Flask, jsonify import requests

app = Flask(__name__)

@app.route('/api/flota/') def get_posiciones(flota_id): # Obtener posiciones actuales response = requests.get( f"API_URL/flotas/{flota_id}/posiciones", headers={"Authorization": f"Bearer {API_KEY}"} )

posiciones = response.json()['data']

return jsonify({ "flota_id": flota_id, "vehiculos": len(posiciones), "actualizado": datetime.now().isoformat(), "posiciones": posiciones })

if __name__ == "__main__": app.run(port=5000) ```

---

Métricas de Flota

```python

KPIs comunes

METRICAS = [ "kms_totales", "tiempo_en_movimiento", "tiempo_parado", "consumo_estimado", "velocidad_media", "incidencias" ] ```

---

Conclusión

API de tracking + WebSocket permite construir dashboards profesionales. Integrar con TMS mejora planificación.

Documentación →