Table of Contents

Mega Landmark-Dienst verwenden

Dieser Artikel beschreibt, wie der Mega Landmark-Lokalisierungsdienst nach der Integration des Mega-Plugins für WeChat Mini Program verwendet wird.

Bevor Sie beginnen

Mega Landmark aktivieren

Verwenden Sie zunächst Landmark als apiType, um MegaTrackerConfigs zu erstellen.

Verwenden Sie anschließend MegaTrackerConfigs und den licenseKey in der Konfiguration, um SessionConfigs zu erstellen.

Erstellen Sie schließlich session mit der Methode createSession(sessionConfigs) von EasyARMegaComponent, das in der xr-frame-Szene eingebunden ist.

const megaTrackerConfigs: easyar.MegaTrackerConfigs = {
    access: apiKeyAccess,
    apiType: mega.MegaApiType.Landmark
};
const sessionConfigs: easyar.SessionConfigs = {
    megaTrackerConfigs: megaTrackerConfigs,
    licenseKey: settings.EasyARLicenseKey
};
session = megaComponent.createSession(sessionConfigs);

LandmarkFilter verwenden

Wenn mit Landmark erstellt wird, instanziiert MegaTracker intern automatisch MegaLandmarkFilter.

Seine Funktion besteht darin, dass MegaTracker beim Verwenden des Landmark-Dienstes anhand von SpotId oder GNSS-Daten die am besten geeignete Mega-Lokalisierungskartenbibliothek filtert.

Die Filter-APIs können erst nach erfolgreichem Aufruf von start(options) aufgerufen werden.

Wenn MegaTracker den Landmark-Dienst verwendet und die Filterung nicht erfolgreich war, ist der Lokalisierungsstatus immer MissingSpotVersionId

  • Die bereitgestellte SpotID zum Zuordnen der Lokalisierungskartenbibliothek verwenden:

Verwenden Sie die Methode filterBySpotId(spotId) von Landmark, um die Lokalisierungskartenbibliothek anhand von SpotID zuzuordnen:

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}`)
    }
}
  • Aktuelle GNSS-Daten zum Zuordnen der Lokalisierungskartenbibliothek verwenden:

Verwenden Sie die Methode filterByLocation() von Landmark, um die Lokalisierungskartenbibliothek anhand der aktuellen GNSS-Daten zuzuordnen:

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