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