Table of Contents

Guía de uso y mejores prácticas para múltiples mapas

En el desarrollo de aplicaciones Mega, si se deben agregar múltiples mapas (Blocks) en una biblioteca de posicionamiento es una pregunta común. El uso incorrecto de múltiples mapas no solo no mejora las capacidades de la aplicación, sino que también puede provocar una disminución del rendimiento y saltos de posicionamiento.

Esta guía le ayudará a comprender y utilizar correctamente la función de múltiples mapas, evitando errores comunes.

¿Por qué se debe evitar agregar múltiples mapas?

Principio fundamental: no agregue múltiples mapas para "ampliar la cobertura".

En la gran mayoría de los casos, una biblioteca de posicionamiento debe contener un solo mapa Mega Block de una ubicación. A continuación, se presentan algunos usos incorrectos comunes que deben evitarse:

  • Escenario incorrecto A: múltiples áreas

    • Idea: crear mapas separados para las "Zona A", "Zona B" y "Zona C" de un complejo turístico interconectado, luego agregar los tres mapas a la biblioteca a la vez, con la esperanza de que los usuarios puedan cambiar sin problemas mientras se mueven por el complejo.
    • Problema: los tres mapas creados de esta manera no tienen una relación matemática en sus coordenadas espaciales; son independientes entre sí. Debido a la inconsistencia de sus sistemas de coordenadas, no se puede lograr una transición fluida durante el movimiento, lo que provoca saltos de posicionamiento en los límites entre áreas.
    • Solución: para este tipo de escenarios, la mejor manera es capturar la "Zona A", "Zona B" y "Zona C" siguiendo el método descrito en Método de captura de datos espaciales grandes, asegurando áreas de superposición suficientes entre ellas. Construya el mapa siguiendo el método descrito en Tarea de fusión de gran escala. Esto generará un único mapa Block con un sistema de coordenadas unificado que incluye todas las áreas mencionadas. Este mapa único se puede agregar a la biblioteca de posicionamiento.
  • Escenario incorrecto B: múltiples ubicaciones

    • Idea: crear un mapa para un centro comercial en una ubicación y otro mapa para un centro comercial del mismo nombre en otra ubicación diferente, con la esperanza de usarlos simultáneamente en una aplicación.
    • Problema: esto ralentiza significativamente el posicionamiento. Durante el posicionamiento, el dispositivo necesita comparar simultáneamente todos los datos de los mapas en la biblioteca, aumentando drásticamente el cálculo y prolongando el tiempo de inicialización. El usuario solo puede estar en un centro comercial a la vez, cargar el mapa del otro es un desperdicio de recursos. Cuando la demanda es alta en un centro comercial, también ralentizará el tiempo de respuesta de las solicitudes del otro.
    • Solución: cree bibliotecas de posicionamiento separadas para centros comerciales en diferentes ubicaciones, agregando solo un mapa a cada biblioteca. En la aplicación, acceda dinámicamente a la biblioteca de posicionamiento correspondiente según la ubicación actual del usuario.
  • Escenario incorrecto C: a través del tiempo

    • Idea: capturar y construir un mapa de la misma ubicación durante el día, y otro durante la noche, luego agregar ambos mapas (diurno y nocturno) a la biblioteca, con la esperanza de que los usuarios tengan una experiencia consistente en la misma ubicación en diferentes momentos.
    • Problema: este escenario es similar al Escenario incorrecto A; los resultados de los mapas construidos por separado no pueden garantizar una relación de posición espacial entre ellos.
    • Solución: siga el método descrito en Tarea de fusión de gran escala para fusionar las capturas diurnas y nocturnas en un único proceso de construcción de mapas. Agregue el único mapa Block resultante a la biblioteca de posicionamiento.
  • Escenario incorrecto D: a través de versiones

    • Idea: para una misma ubicación, ya se tiene un mapa de la versión A en uso. Posteriormente, durante la operación, se construye un mapa actualizado de la versión B y se agrega a la biblioteca de posicionamiento original, con la esperanza de utilizar el nuevo mapa sin tener que volver a publicar la aplicación.
    • Problema: al ser mapas de diferentes versiones de la misma ubicación, durante el posicionamiento ocurrirán saltos en los resultados entre los dos conjuntos de datos de versiones diferentes.
    • Solución: actualice el mapa de la versión antigua siguiendo el método descrito en Actualización completa sin pérdidas, garantizando que los datos del mapa se actualicen mientras se mantiene el sistema de coordenadas. Después de agregar el mapa actualizado, elimine el mapa de la versión original de la biblioteca de posicionamiento.
  • Escenario incorrecto E: actualización complementaria

    • Idea: para una misma ubicación, ya se tiene un mapa de la versión A en uso. Posteriormente, debido a cambios en áreas locales o la necesidad de capturar complementos en áreas pequeñas, se crea un nuevo mapa B y se agrega a la biblioteca de posicionamiento original, con la esperanza de utilizar los nuevos datos sin volver a publicar la aplicación.
    • Problema: el nuevo mapa B del área pequeña no tiene una relación de coordenadas espaciales con el mapa A original, lo que provocará saltos de posicionamiento en las áreas que abarcan datos nuevos y antiguos.
    • Solución: realice una actualización complementaria del mapa de la versión antigua siguiendo el método descrito en Actualización complementaria, asegurando que el área pequeña recién capturada mantenga el mismo sistema de coordenadas que el mapa antiguo. Después de agregar el mapa actualizado, elimine el mapa de la versión original de la biblioteca de posicionamiento.

Resumen: Intentar ensamblar un mundo grande con múltiples mapas pequeños no es adecuado para los mapas de alta precisión de Mega. La filosofía de diseño de Mega es una representación 3D de alta precisión con un espacio continuo, coordenadas unificadas y consistencia espacio-temporal.

Escenarios que realmente requieren múltiples mapas

Entonces, ¿cuándo se necesita realmente agregar múltiples mapas (Blocks) a una biblioteca? Los escenarios principales son "tareas paralelas" o "selección de múltiples espacios", no la "unión espacial".

  • Escenario uno: selección de múltiples espacios

    • Descripción: su aplicación sirve a múltiples áreas completamente diferentes dentro de la misma ubicación física. Pero debido a restricciones de estructura del edificio o problemas en la práctica de captura, no es posible conectar estas áreas en los datos, y es posible que el usuario necesite seleccionar primero el área en la que se encuentra. Por ejemplo, diferentes pisos de un gran hospital.
    • Implementación: después de que el usuario seleccione un área, utilice esta información previa para activar dinámicamente el único mapa correspondiente a esa ubicación/área. En cualquier momento, solo un mapa participa en el cálculo dentro de la biblioteca de posicionamiento. Cuando el usuario se traslada a una nueva área, se requiere una nueva confirmación de la selección del área.
  • Escenario dos: tareas paralelas

    • Descripción: su aplicación necesita manejar simultáneamente dos o más tareas independientes de seguimiento de objetos conocidos, donde estos objetos están en la misma ubicación pero no relacionados entre sí y con características muy diferentes. Por ejemplo, múltiples objetos de exhibición en un museo.
    • Implementación: en este escenario avanzado, puede crear un mapa independiente para cada objeto y luego agregar estos "mapas de objetos" a una biblioteca de posicionamiento. Sin embargo, tenga en cuenta que el rendimiento del posicionamiento dependerá del número de objetos agregados a la biblioteca. Si el número de objetos es grande, es posible que deba equilibrar el rendimiento del posicionamiento con el número de bibliotecas, clasificando los objetos y creando múltiples bibliotecas de posicionamiento para agregarlos por separado.

Comportamiento del lado de renderizado al usar múltiples mapas

Es importante tener en cuenta que al usar el posicionamiento con múltiples mapas, el comportamiento de renderizado 3D varía según la plataforma y la versión.

Recomendaciones de mejores prácticas

Si realmente pertenece a uno de los escenarios descritos en Escenarios que realmente requieren múltiples mapas, o debe usar múltiples mapas, siga estos principios:

  1. Activar bajo demanda: cuando el usuario hace una selección o ingresa a un área específica, proporcione la información previa correspondiente al enviar la solicitud de posicionamiento y cargue solo el contenido 3D correspondiente.
  2. Cambio dinámico: proporcione una interfaz de usuario clara para que el usuario elija la escena. Antes de cargar el contenido 3D correspondiente a un nuevo mapa, descargue el contenido 3D del mapa anterior para liberar memoria.
  3. Gestión del estado: gestione explícitamente en el código el mapa activado actualmente. Escuche el Block ID en los resultados de posicionamiento para diferenciar la retroalimentación de posicionamiento de diferentes mapas.
  4. Monitoreo del rendimiento: al usar múltiples mapas, supervise de cerca el uso de memoria del dispositivo, la latencia del posicionamiento y el consumo de energía para garantizar que la aplicación se ejecute sin problemas en los dispositivos objetivo.

En resumen, para la gran mayoría de las aplicaciones, adherirse al principio de "un escenario, un mapa" es la mejor opción para garantizar el rendimiento y la estabilidad del posicionamiento de Mega.