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
- Obtenga y use APIKey (debe incluir Mega Landmark).
- Conozca los conceptos y el flujo de trabajo de MegaTracker.
- Conozca la autenticación del servicio en la nube de MegaTracker.
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}`)
}
}