Table of Contents

Verwendung des mega landmark-dienstes

Dieser Artikel beschreibt, wie Sie den Positionsbestimmungsdienst von mega landmark nutzen können, nachdem das mega-plugin in mini-program integriert wurde.

Vor dem beginnen

Aktivierung von mega landmark

Erstellen Sie zunächst MegaTrackerConfigs unter Verwendung von Landmark als apiType.

Erstellen Sie dann SessionConfigs unter Verwendung von MegaTrackerConfigs und dem licenseKey aus der Konfiguration.

Erstellen Sie schließlich eine session mit der Methode createSession(sessionConfigs) der EasyARMegaComponent-Komponente, die in der xr-frame-szene montiert ist.

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

Verwendung von landmarkfilter

Wenn Landmark zur Erstellung verwendet wird, instanziiert mega tracker automatisch intern MegaLandmarkFilter.

Seine Funktion besteht darin, dass mega tracker beim Einsatz des landmark-dienstes die aktuell am besten geeignete mega positionsbibliothek über spotId oder GNSS-daten filtert.

Filter-APIs können erst aufgerufen werden, nachdem start(options) erfolgreich war.

Wenn mega tracker den landmark-dienst verwendet, aber kein erfolgreiches Filterergebnis vorliegt, bleibt der Lokalisierungsstatus stets MissingSpotVersionId

  • Verwenden der bereitgestellten spotID zum abgleichen der positionsbibliothek:

Verwenden Sie die Methode filterBySpotId(spotId) von Landmark, um die positionsbibliothek über die spotID abzugleichen:

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}`)
    }
}
  • Verwendung aktueller GNSS-daten zum abgleichen der positionsbibliothek:

Verwenden Sie die Methode filterByLocation() von Landmark, um die positionsbibliothek mit aktuellen GNSS-daten abzugleichen:

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