Table of Contents

Usar el servicio Mega Landmark

Este artículo describe cómo usar el servicio de localización Mega Landmark después de integrar el plugin Mega para WeChat Mini Program.

Antes de empezar

Habilitar Mega Landmark

Primero, use Landmark como apiType para crear MegaTrackerConfigs.

Después, use MegaTrackerConfigs y el licenseKey de la configuración para crear SessionConfigs.

Finalmente, use el método createSession(sessionConfigs) de EasyARMegaComponent montado en la escena xr-frame para crear session.

const megaTrackerConfigs: easyar.MegaTrackerConfigs = {
    access: apiKeyAccess,
    apiType: mega.MegaApiType.Landmark
};
const sessionConfigs: easyar.SessionConfigs = {
    megaTrackerConfigs: megaTrackerConfigs,
    licenseKey: settings.EasyARLicenseKey
};
session = megaComponent.createSession(sessionConfigs);

Cómo usar LandmarkFilter

Cuando se crea con Landmark, MegaTracker instancia automáticamente MegaLandmarkFilter internamente.

Su función es permitir que MegaTracker filtre la biblioteca de mapas de localización Mega más adecuada mediante SpotId o datos GNSS al usar el servicio Landmark.

Las APIs de filtrado solo se pueden llamar después de que start(options) se complete correctamente.

Cuando MegaTracker usa el servicio Landmark y el filtrado no se ha completado correctamente, el estado de localización siempre es MissingSpotVersionId

  • Usar el SpotID proporcionado para emparejar la biblioteca de mapas de localización:

Use el método filterBySpotId(spotId) de Landmark para emparejar la biblioteca de mapas de localización mediante SpotID:

async landmarkFilter() {
    const res = await session.megaTracker.landmarkFilter.filterBySpotId(settings.LandmarkSpotId);
    if (res.status != mega.MegaLandmarkFilterStatus.Found) {
        console.error(`LandmarkFilter Failed, status: ${mega.MegaLandmarkFilterStatus[res.status]}, exceptionInfo : ${res.exceptionInfo}`)
    }
}
  • Usar los datos GNSS actuales para emparejar la biblioteca de mapas de localización:

Use el método filterByLocation() de Landmark para emparejar la biblioteca de mapas de localización usando los datos GNSS actuales:

async landmarkFilter() {
    const res = await session.megaTracker.landmarkFilter.filterByLocation();
    if (res.status != mega.MegaLandmarkFilterStatus.Found) {
        console.error(`LandmarkFilter Failed, status: ${mega.MegaLandmarkFilterStatus[res.status]}, exceptionInfo : ${res.exceptionInfo}`)
    }
}