Table of Contents

Using mega landmark service

この記事では、WeChat Mini ProgramのMegaプラグインを統合した後、Mega Landmarkの位置情報サービスを利用する方法について説明します。

Before you begin

Mega landmarkを有効化する

まず、apiTypeとしてLandmarkを使用してMegaTrackerConfigsを作成します。

次に、MegaTrackerConfigsと設定内のlicenseKeyを使用してSessionConfigsを作成します。

最終的に、xr-frameシーンにアタッチされたEasyARMegaComponentcreateSession(sessionConfigs)メソッドでセッションを作成します。

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位置情報ライブラリをフィルタリングすることです。

フィルタリングインターフェースは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}`)
    }
}