Table of Contents

Mega Landmark 서비스 사용

이 문서는 WeChat Mini Program Mega 플러그인을 연동한 후 Mega Landmark의 로컬라이제이션 서비스를 사용하는 방법을 소개합니다.

시작하기 전에

Mega Landmark 활성화

먼저 LandmarkapiType으로 사용하여 MegaTrackerConfigs를 생성합니다.

그런 다음 MegaTrackerConfigs와 구성의 licenseKey를 사용하여 SessionConfigs를 생성합니다.

마지막으로 xr-frame 장면에 마운트된 EasyARMegaComponentcreateSession(sessionConfigs) 메서드로 session을 생성합니다.

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

LandmarkFilter 사용 방법

Landmark를 사용해 생성하면 MegaTracker는 내부적으로 MegaLandmarkFilter를 자동 인스턴스화합니다.

그 기능은 Landmark 서비스를 사용할 때 SpotId 또는 GNSS 데이터를 통해 현재 가장 적합한 Mega 로컬라이제이션 맵 라이브러리를 MegaTracker가 필터링하는 것입니다.

필터링 API는 start(options)가 성공한 후에만 호출할 수 있습니다.

MegaTracker가 Landmark 서비스를 사용하지만 필터링이 성공하지 않은 경우, 로컬라이제이션 상태는 항상 MissingSpotVersionId입니다

  • 제공된 SpotID를 사용하여 로컬라이제이션 맵 라이브러리 매칭:

LandmarkfilterBySpotId(spotId) 메서드를 사용하여 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}`)
    }
}
  • 현재 GNSS 데이터를 사용하여 로컬라이제이션 맵 라이브러리 매칭:

LandmarkfilterByLocation() 메서드를 사용하여 현재 GNSS 데이터로 로컬라이제이션 맵 라이브러리를 매칭합니다.

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