Caso de usoasset trackingRTLSIPS

Seguimiento de activos en interiores en tiempo real: del tag RTLS a un marcador en vivo sobre tu plano

Lleva posiciones RTLS, BLE, UWB o Wi‑Fi a un mapa interior en vivo: elige la tecnología, envíalas a una tabla, muéstralas y repasa por dónde pasaron.

9 min de lecturaPublicado Actualizado Por Spatial Map team
La demo Acme Warehouse en Preview 3D: racks, camiones en los muelles, marcadores de operarios con nombre y marcadores de extintores, cada uno colocado sobre el plano a partir de su propia fila de tabla

Qué cubre esta guía

¿Qué tecnología de tag?

Empieza por la pregunta, no por la radio. «¿En qué sala está el proyector?», «¿Dónde está exactamente la carretilla en este pasillo?» y «¿Pasó este carro por la puerta del muelle?» son tres preguntas distintas, y cada tecnología responde bien a una de ellas. A Spatial Map le da igual cuál elijas: necesita un identificador y una posición (o un punto de lectura) por fila.

TecnologíaQué te diceGranularidad habitualQué instalasEncaja con
Tags BLE + gatewaysDónde está un tag de forma aproximada, normalmente en qué sala o zonaSala o zona, hasta unos pocos metros; depende de la densidad de gateways y del edificioTags con batería, gateways o receptores BLEHerramientas, carros, equipos portátiles, credenciales del personal
UWBUna posición x/y precisa (a menudo también z)Se puede bajar del metro con anclajes densos y bien topografiadosAnclajes con alimentación, un estudio del sitio, tagsCarretillas, manipulación robotizada, equipos donde cada metro cuenta
RFID UHF pasivoQue un tag pasó por un punto de lecturaPresencia en una puerta, arco, ascensor o estante, no un recorrido continuoLectores fijos y antenas en puntos de paso, etiquetas de bajo costePalés, cajas, consumibles, inventario en puertas y arcos
Localización Wi‑FiDónde está un dispositivo Wi‑Fi, según tu red inalámbricaUnos metros, muy variable según la disposición de los puntos de accesoPuntos de acceso existentes y un motor de localizaciónPortátiles, tabletas, tags Wi‑Fi que ya tienes

El RFID funciona distinto de las otras tres: en lugar de un punto que se mueve, obtienes lecturas en lectores fijos. Nuestra demo Retail Mart muestra ese patrón: 85 lectores en arcos, ascensores y escaleras mecánicas dibujados como zonas pulsantes. Consulta cómo integrar lectores RFID en un mapa interior.

Monta el flujo de datos

Del tag al marcador en movimientoTu motor de posicionamiento localiza el tag, un pequeño relé convierte y agrupa las posiciones y las escribe en una tabla de Spatial Map, y cada mapa abierto redibuja los marcadores mientras la tabla guarda el historial de cambios.

Spatial Map no es un motor de posicionamiento y nunca habla con tags ni anclajes. El motor que ya tienes calcula las posiciones; un pequeño relé —un script, una función serverless o tu middleware de integración— convierte su flujo en filas de tabla. Dentro de la app no hay webhook, stream ni ingesta WebSocket que configurar: la API de escritura de tablas es el camino de entrada.

  1. 1
    Crea la tabla

    En Tables, crea una tabla del tipo Asset (mobile) con los campos que necesitan tus marcadores y tooltips. Por ejemplo: asset_tag, asset_name, asset_type, status, location, battery_pct, last_seen, lat, lng y elevation_m, más status_color si tu relé elige el color. Consulta Tablas.

  2. 2
    Crea una clave

    En la pestaña API & access de la tabla, pulsa Create key. La clave empieza por sgv_tbl_, se muestra una sola vez y solo puede escribir en esa tabla; da a cada sistema su propia clave para poder revocar una sin romper el resto. Copia la URL base exacta y los ejemplos curl de esa misma pestaña.

  3. 3
    Convierte a latitud / longitud

    La mayoría de los motores dan x/y en metros en un sistema local. Convierte a WGS84 antes de enviar (una transformación afín a partir de dos o tres puntos medidos) y envía la altura en metros (elevation_m) para que el marcador quede a su nivel en 3D.

  4. 4
    Agrupa y envía

    Cada pocos segundos, envía los tags que se movieron o cambiaron de estado en un único POST /rows/bulk: hasta 1.000 filas en una transacción. Las filas no válidas vuelven en errors[] y las válidas se guardan; se rechaza una fila sin un campo obligatorio o con un valor único duplicado.

  5. 5
    Parchea en vez de sobrescribir

    POST sustituye todo el contenido de la fila. Si la tabla guarda datos que tu motor no conoce (nombre del equipo, departamento responsable), crea cada fila una vez y luego envía las posiciones con PATCH /rows/bulk, que solo fusiona los campos que mandas.

bash·Crea las filas una vez y luego parchea posiciones por lotes
# 1) Create or replace rows (full payload) — once per asset,
#    or whenever its master data changes
curl -X POST https://app.spatialmap.io/api/v1/public/tables/rows/bulk \
  -H "Authorization: Bearer $SPATIALMAP_TABLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"rows":[
    {"entityKey":"EQ-0103","payload":{"asset_tag":"EQ-0103","asset_name":"Pallet jack 03",
      "asset_type":"Pallet jack","status":"In use","location":"Dock 2","battery_pct":76,
      "lat":42.4637,"lng":-5.8802,"elevation_m":0.9,"status_color":"#2563eb",
      "last_seen":"2026-10-11T16:28:03Z"}},
    {"entityKey":"EQ-0149","payload":{"asset_tag":"EQ-0149","asset_name":"Torque wrench 02",
      "asset_type":"Tool","status":"Available","location":"Tool crib",
      "lat":42.46345,"lng":-5.88047,"elevation_m":0.9,"status_color":"#16a34a",
      "last_seen":"2026-10-11T16:28:01Z"}}
  ]}'

# 2) Every few seconds: patch only the tags that moved or changed
curl -X PATCH https://app.spatialmap.io/api/v1/public/tables/rows/bulk \
  -H "Authorization: Bearer $SPATIALMAP_TABLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"rows":[
    {"entityKey":"EQ-0103","patch":{"lat":42.46336,"lng":-5.88014,"location":"Dock 4",
      "last_seen":"2026-10-11T16:28:09Z"}}
  ]}'

Qué pasa después: cada escritura se guarda, se añade al historial de la fila y se anuncia a todos los mapas abiertos, que vuelven a cargar esa capa al momento; un refresco cada 30 segundos actúa de red de seguridad. De extremo a extremo, el marcador va por detrás del activo real lo que tarde tu motor más tu intervalo de envío. Unos segundos es realista; el seguimiento por debajo del segundo no es para lo que sirve este flujo.

Convierte las filas en marcadores que se mueven

Un data link decide cómo aparecen las filas de una tabla en una instalación. Para el seguimiento, el modo es Live location marker: cada fila se convierte en un marcador en su propia latitud y longitud. Una configuración de seguimiento típica tiene dos, uno por tabla:

  • Equipment lee una tabla Equipment del tipo Asset (mobile): herramientas, carros, transpaletas, equipos de prueba, cualquier cosa con un tag. lng/lat colocan el marcador, elevation_m lo eleva, asset_name le pone etiqueta y un icono lo identifica como equipo; el color sale de un campo como status_color o de reglas de estilo sobre un estado como Available, In use o Maintenance.
  • Staff lee una tabla Staff del mismo tipo, con el ID de la credencial como clave. Mismo modo con un icono de persona, el nombre de la persona como etiqueta y color según el rol o el estado.
Connect fields de un data link de marcadores de personal
Diálogo Edit data link en el paso 6, Connect fields: Longitude lng, Latitude lat, elevación desde el campo elevation_m, Label field name y, debajo, el paso Style con la vista previa en vivo de un marcador verde de persona
Diálogo Edit data link en el paso 6, Connect fields: Longitude lng, Latitude lat, elevación desde el campo elevation_m, Label field name y, debajo, el paso Style con la vista previa en vivo de un marcador verde de persona

En Connect fields apuntas el enlace a tus propios nombres de columna; no tienen por qué llamarse lat y lng (asignación de campos). El color puede salir directamente de un campo como status_color o de reglas de estilo que asignan colores a valores como In use o Maintenance. El paso Map tooltip elige qué se ve al pasar el ratón o al hacer clic; un enlace de equipos podría mostrar etiqueta, tipo, estado, ubicación, batería y última detección.

Plantas: un enlace puede mostrar sus registros en todas las plantas, en plantas concretas o en la planta que indique cada registro. Si tu motor informa de un nivel como «Level 1», envíalo como campo y elige From record en el alcance de plantas; así cada marcador aparece solo en su planta.

Lo que ve la gente en el mapa

En el visor o en un enlace compartido, las dos capas se apoyan sobre el plano 3D junto con el resto de la instalación. El panel Layers lista las capas de datos junto a áreas, escaleras, racks y planos, de modo que un jefe de turno puede ocultar las credenciales del personal y mirar solo los equipos, o apagar una capa por completo (panel de capas).

Capas de tags BLE como estas funcionan en varias instalaciones del espacio de trabajo de demostración: herramientas y cuadrillas en la planta de producción de Summit Assembly Plant, carretillas y cuadrillas en el muelle de Eastport Cross‑Dock Freight Hub, herramientas y equipos sala por sala en Northgate Electronics, y personal, visitantes y equipos por zona en Harborview Corporate Campus, donde el registro de activos y el préstamo de equipos comparten el mismo mapa de tres plantas.

Harborview Corporate Campus — Building A en Preview
Harborview Corporate Campus Building A en Preview, planta baja en 3D: salas coloreadas por uso, con marcadores en vivo de equipos etiquetados como proyectores, portátiles y monitores, lectores RFID, lecturas de sensores de sala e impresoras
Harborview Corporate Campus Building A en Preview, planta baja en 3D: salas coloreadas por uso, con marcadores en vivo de equipos etiquetados como proyectores, portátiles y monitores, lectores RFID, lecturas de sensores de sala e impresoras

Haz clic en un marcador para abrir el panel de detalle: todas las propiedades de la fila —etiqueta, estado, ubicación, batería, última detección, coordenadas— y, debajo, una sección History con la cronología de cambios de esa fila.

¿Por dónde ha pasado? Historial y reproducción

Cada escritura por la API se guarda como un evento con una instantánea completa de la fila. Eso te da dos formas de mirar atrás, ambas descritas en historial y reproducción de tablas:

  • Por activo: la sección History del panel lista cada alta, cambio y baja de esa fila, del más reciente al más antiguo, con los campos que cambiaron. Responde a «¿cuándo pasó la transpaleta 03 a Maintenance y dónde estaba entonces?».
  • Toda la capa: añade un segundo data link sobre la misma tabla en modo Historical movement. Mientras esté visible, aparece un History player en la parte inferior del mapa: elige una ventana (1h, 24h, 7d o 30d), pulsa reproducir o arrastra la barra, y cada marcador salta a donde estaba su activo en ese momento. La velocidad es tiempo de historial por segundo de reproducción, de 15s/s a 30m/s.
500
Máximo de eventos de historial por fila en el panel
5.000
Máximo de eventos por ventana de reproducción
60 / min
Peticiones de escritura por clave (ráfaga de 30)
1.000
Filas por llamada masiva

Lo que falla primero

Siguientes pasos

Para la parte de gestión de activos de esta historia —un registro de activos, el préstamo de equipos y equipos localizados en un mismo mapa— mira la solución de gestión de activos y la ficha de Harborview Corporate Campus; para herramientas y cuadrillas en una planta de producción, Summit Assembly Plant, y para carretillas y cuadrillas en un muelle, Eastport Cross‑Dock Freight Hub. La documentación cubre cada pieza: data links, la API de escritura de tablas y el tutorial seguir personal y equipos con marcadores en vivo, que monta este mismo flujo desde una tabla vacía, paso a paso.

Prueba la plataforma que tus datos merecen.

Spatial Map convierte hojas de cálculo, sensores y planos CAD en una vista 3D en vivo de tus instalaciones — sin instalar nada, prueba gratuita de siete días.

Velo en vivo

Sigue leyendo