Utilizzare il servizio Mega Landmark
Questo articolo spiega come utilizzare il servizio di localizzazione Mega Landmark dopo aver integrato il plugin Mega in WeChat Mini Program.
Prima di iniziare
- Ottenere e utilizzare APIKey (deve includere Mega Landmark).
- Comprendere concetti e flusso di lavoro di MegaTracker.
- Comprendere autenticazione del servizio cloud MegaTracker.
Abilitare Mega Landmark
Innanzitutto crea MegaTrackerConfigs utilizzando Landmark come apiType.
Quindi crea SessionConfigs utilizzando MegaTrackerConfigs e la licenseKey dalla configurazione.
Infine crea la session utilizzando il metodo createSession(sessionConfigs) del componente EasyARMegaComponent montato nella scena 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);
Come utilizzare LandmarkFilter
Quando si crea con Landmark, MegaTracker istanzia automaticamente internamente MegaLandmarkFilter.
La sua funzione è filtrare la libreria di localizzazione Mega più appropriata tramite SpotId o dati GNSS quando MegaTracker utilizza il servizio Landmark.
Le interfacce di filtraggio possono essere chiamate solo dopo il successo di start(options).
Quando MegaTracker utilizza il servizio Landmark senza filtraggio riuscito, lo stato di localizzazione rimane sempre MissingSpotVersionId
- Abinare la libreria di localizzazione utilizzando lo SpotID fornito:
Usa il metodo filterBySpotId(spotId) di Landmark per abbinare la libreria di localizzazione tramite 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}`)
}
}
- Abinare la libreria di localizzazione utilizzando i dati GNSS correnti:
Usa il metodo filterByLocation() di Landmark per abbinare la libreria di localizzazione utilizzando i dati GNSS correnti:
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}`)
}
}