Table of Contents

Usar o serviço Mega Landmark

Este artigo introduz como usar o serviço de localização Mega Landmark após integrar o plugin Mega em miniprogramas WeChat.

Antes de começar

Ativar Mega Landmark

Primeiro crie MegaTrackerConfigs usando Landmark como apiType.

Depois crie SessionConfigs usando MegaTrackerConfigs e a licenseKey da configuração.

Finalmente crie a sessão usando o método createSession(sessionConfigs) do componente EasyARMegaComponent montado na cena 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);

Como usar o LandmarkFilter

Quando criado com Landmark, o MegaTracker instancia automaticamente MegaLandmarkFilter internamente.

Sua função é filtrar o banco de dados de localização Mega mais adequado via SpotId ou dados GNSS quando o MegaTracker usa o serviço Landmark.

As interfaces de filtro só podem ser chamadas após start(options) ter sucesso.

Quando o MegaTracker usa o serviço Landmark sem filtragem bem-sucedida, o status de localização permanece sempre MissingSpotVersionId

  • Corresponder banco de dados usando SpotID fornecido:

Use o método filterBySpotId(spotId) de Landmark para corresponder banco de dados via 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}`)
    }
}
  • Corresponder banco de dados usando dados GNSS atuais:

Use o método filterByLocation() de Landmark para corresponder banco de dados usando dados GNSS atuais:

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}`)
    }
}