Using mega landmark service
この記事では、WeChat Mini ProgramのMegaプラグインを統合した後、Mega Landmarkの位置情報サービスを利用する方法について説明します。
Before you begin
- APIキーの取得と利用(Mega Landmarkを含む必要があります)。
- MegaTrackerの概念とワークフローを理解する。
- MegaTrackerクラウドサービスの認証を理解する。
Mega landmarkを有効化する
まず、apiTypeとしてLandmarkを使用してMegaTrackerConfigsを作成します。
次に、MegaTrackerConfigsと設定内のlicenseKeyを使用してSessionConfigsを作成します。
最終的に、xr-frameシーンにアタッチされたEasyARMegaComponentのcreateSession(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で位置情報ライブラリをマッチング:
LandmarkのfilterBySpotId(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データで位置情報ライブラリをマッチング:
LandmarkのfilterByLocation()メソッドを使用して、現在の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}`)
}
}