Utiliser le service Mega Landmark
Cet article explique comment utiliser le service de localisation Mega Landmark après l'intégration du plug-in Mega dans une mini-programme WeChat.
Avant de commencer
- Obtenir et utiliser APIKey (doit inclure Mega Landmark).
- Comprendre les concepts et flux de travail de MegaTracker.
- Comprendre l'authentification du service cloud MegaTracker.
Activer Mega Landmark
D'abord, créez une MegaTrackerConfigs en utilisant Landmark comme apiType.
Puis créez une SessionConfigs avec les MegaTrackerConfigs et la licenseKey de la configuration.
Enfin, créez la session avec la méthode createSession(sessionConfigs) du composant EasyARMegaComponent attaché à la scène xr-frame.
const megaTrackerConfigs: easyar.MegaTrackerConfigs = {
access: apiKeyAccess,
apiType: mega.MegaApiType.Landmark
};
const sessionConfigs: easyar.SessionConfigs = {
megaTrackerConfigs: megaTrackerConfigs,
licenseKey: settings.EasyARLicenseKey
};
session = megaComponent.createSession(sessionConfigs);
Comment utiliser LandmarkFilter
Lors de la création avec Landmark, MegaTracker instancie automatiquement en interne un MegaLandmarkFilter.
Sa fonction est de filtrer la bibliothèque de localisation Mega la plus appropriée via SpotId ou les données GNSS lorsque MegaTracker utilise le service Landmark.
Les interfaces de filtrage ne peuvent être appelées qu'après le succès de start(options).
Lorsque MegaTracker utilise le service Landmark sans filtrage réussi, l'état de localisation reste toujours MissingSpotVersionId
- Faire correspondre la bibliothèque de localisation avec le SpotID fourni :
Utilisez la méthode filterBySpotId(spotId) de Landmark pour faire correspondre la bibliothèque de localisation avec 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}`)
}
}
- Faire correspondre la bibliothèque de localisation avec les données GNSS actuelles :
Utilisez la méthode filterByLocation() de Landmark pour faire correspondre la bibliothèque de localisation avec les données GNSS actuelles :
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}`)
}
}