Utiliser le service Mega Landmark
Cet article décrit comment utiliser le service de localisation Mega Landmark après l'intégration du plugin Mega pour WeChat Mini Program.
Avant de commencer
- Obtenez et utilisez APIKey (doit inclure Mega Landmark).
- Découvrez les concepts et le workflow de MegaTracker.
- Découvrez l'authentification du service cloud MegaTracker.
Activer Mega Landmark
Utilisez d'abord Landmark comme apiType pour créer MegaTrackerConfigs.
Utilisez ensuite MegaTrackerConfigs et le licenseKey dans la configuration pour créer SessionConfigs.
Enfin, utilisez la méthode createSession(sessionConfigs) de EasyARMegaComponent montée dans la scène xr-frame pour créer session.
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
Lorsqu'il est créé avec Landmark, MegaTracker instancie automatiquement en interne MegaLandmarkFilter.
Sa fonction est de permettre à MegaTracker de filtrer la bibliothèque de cartes de localisation Mega la plus appropriée à l'aide de SpotId ou de données GNSS lors de l'utilisation du service Landmark.
Les APIs de filtrage ne peuvent être appelées qu'après le succès de start(options).
Lorsque MegaTracker utilise le service Landmark et que le filtrage n'a pas réussi, l'état de localisation est toujours MissingSpotVersionId
- Utiliser le SpotID fourni pour faire correspondre la bibliothèque de cartes de localisation:
Utilisez la méthode filterBySpotId(spotId) de Landmark pour faire correspondre la bibliothèque de cartes 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}`)
}
}
- Utiliser les données GNSS actuelles pour faire correspondre la bibliothèque de cartes de localisation:
Utilisez la méthode filterByLocation() de Landmark pour faire correspondre la bibliothèque de cartes de localisation en utilisant 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}`)
}
}